关于Fortify中的漏洞以及修复方案

Access Control:DataBase的漏洞

出现原因

如果在程序中简单的使用findById(String id)这个方法,攻击者就有可能使用脚本进行攻击,使其该表中的所有用户信息。比如
for(int i=0; i<10000;i++){
	findById(i);
}

通过类似的代码就可以获取所有用户信息。

解决方案

可以通过在该方法上加上别的限定条件。如findByIdAndUserName(String id, String userName);这样子攻击者就不能获取该用户以外的用户信息。

Cross-Site Scripting: Reflected(XXS跨站脚本攻击)

出现原因

未检验包含在动态内容中的数据,便将其传送给了 Web 用户。 
代码如下
Statement stmt = conn.createStatement();
 ResultSet rs = stmt.executeQuery("select * from emp where id="+eid);
 if (rs != null) {

rs.next();

String name = rs.getString("name");
 }
 ServletOutputStream out = response.getOutputStream();
 out.print("Employee Name: " + name);
 ...
 out.close();

如果name为正常值,则程序运行无偿,如果name是


                    
                    

你可能感兴趣的:(技术分享)