Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保护我的java web应用程序?_Java_Security_Jsp_Servlets_Authorization - Fatal编程技术网

如何保护我的java web应用程序?

如何保护我的java web应用程序?,java,security,jsp,servlets,authorization,Java,Security,Jsp,Servlets,Authorization,我有一个web应用程序,当用户登录时,他们会进入mainjsp.jsp页面 在此页面中,日期文本框很少,根据日期和从另一个下拉列表中选择的内容,将提交数据。该数据由servlet检索,并带回mainjsp页面 我关心的是安全问题。现在,当我复制粘贴mainjsp.jsp页面的URL并将其粘贴到任何浏览器中时,该页面将按原样显示。我不想发生这种事。我希望用户首先登录,因此我希望我的web应用程序安全 我不知道怎么做。你能告诉我怎样才能做到这一点吗 另外,请告诉我如何为web应用程序中的任何页面实现

我有一个web应用程序,当用户登录时,他们会进入
mainjsp.jsp
页面

在此页面中,日期文本框很少,根据日期和从另一个下拉列表中选择的内容,将提交数据。该数据由
servlet
检索,并带回
mainjsp
页面

我关心的是安全问题。现在,当我复制粘贴
mainjsp.jsp
页面的URL并将其粘贴到任何浏览器中时,该页面将按原样显示。我不想发生这种事。我希望用户首先登录,因此我希望我的web应用程序安全

我不知道怎么做。你能告诉我怎样才能做到这一点吗


另外,请告诉我如何为web应用程序中的任何页面实现这一点。如果用户尚未登录,则应无法访问任何页面。

您应具有基于表单的身份验证。下面是应该添加到web.xml中的代码片段

<security-constraint>
    <web-resource-collection>
        <web-resource-name>pagesWitUnrestrictedAccess</web-resource-name>
        <description>No Description</description>
        <url-pattern>*.jsp</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <description>No Description</description>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>


<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/loginerror.jsp</form-error-page>
    </form-login-config>
</login-config>

页面SwitunRestrictedAccess
没有描述
*.jsp
没有描述
没有一个


  • 您可以检查是否使用现成的安全框架,并防止web环境中的高级安全问题。

    Spring security 3功能强大且易于配置

    使用会话。
    在登录上设置会话变量,并检查您必须确保安全的每个页面。

    当用户输入凭据并将其提交到登录servlet时,在会话中添加用户名或用户id。检查应用程序标题中的会话属性(在每个页面上都是如此),即会话中是否存在用户名或用户id?如果是,则将其重定向到请求页面,否则将用户重定向到login.jsp。例如:

    String var= null;
    try {
        var= (String) session.getAttribute("user_name_session");
        if (var== null) {
            response.sendRedirect("/Login.jsp");
            return;
        }
    } 
    catch (Exception e) {
        System.out.println(e);
    }
    

    您可以根据需要修改代码段,这是防止用户通过将链接复制到其他浏览器进入任何页面的最简单方法。

    这是将HTTP请求转换为HTTPS请求的最佳方法


    使用一些授权和身份验证框架,如spring security,JASS等。我不能在这里用jsp和Servlet做些什么吗?我还没有在spring或JASS上工作过。或者,你能给我提供一些细节来查找spring来实现这一点吗?答案中描述的内容将提供基本级别的安全性,但你需要一个基于角色的安全模型spring security和JASS是可行的方法。一个好的起点是官方文件+1在没有注释的情况下反转a-1。但我认为原因是:没有换行/格式化,太宽/主观的问题,以及短信写作(abt、whn、tht、teh)。请在将来尝试更正这些问题,以获得更多高质量的答案