关于web app安全-服务器端

1. 关于web.xml设置

Use Case:只允许role是“Employee”的用户,可以通过HTTP GET获取对应web资源

<security-constraint>
   <display-name>Restricted GET To Employees</display-name>
   <web-resource-collection>
      <web-resource-name>Restricted Access - Get Only</web-resource-name>
      <url-pattern>/restricted/employee/*</url-pattern>
      <http-method>GET</http-method>
   </web-resource-collection>
   <auth-constraint>
      <role-name>Employee</role-name>
   </auth-constraint>
   <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
   </user-data-constraint>
</security-constraint>
注意:在这样的设置中,只有GET被明确定义,这也意味着这样的constraint指针对GET方法有效,对于其他POST,HEAD等方法不存在这样的安全限制。如果,实际的应用场景想规避这样的弱点,移除<http-method>GET</http-method>的限定即可。

参考:http://java.dzone.com/articles/understanding-web-security

2. 关于session

Use Case: 有Login应用场景的website

Attacker:以public的身份访问某website,获取一个jsessionid。接着,用这个jessionid信息构造一个访问该网站的url,以电子方式spam。

Victim:收到spam邮件,点开邮件链接,以自己用户名密码登录该website。

Attacker:刷新自己页面,以victim的身份登录该website,可以访问该victim的敏感信息。

解决方案:根据JAAS,配置META-INF/context.xml,目的在于保证用户每次登录时,更新对应的session。session更新的同时,将有用信息放入新的session中(shopping cart)。

Use Case:无Login的website

3.关于SQL注入

你可能感兴趣的:(关于web app安全-服务器端)