APPScan安全性问题相关方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


HTML注释敏感信息泄露

针对代码注释中出现的敏感信息进行清楚;敏感信息包括:注释的源代码、电子邮件、IP 地址等;

发现电子邮件地址模式

针对代码中出现的电子邮件进行清除;

检测到文件替代版本

针对产品中所有开头为“Copy of”、“_”、“.”、“~”和“OId”的文件进行清理

不充分账户封锁

对用户登录错误次数进行限制,并在一定的时间内不允许再登录

通过框架钓鱼

通过建立过滤器方法,增加对请求响应信息来源进行判断过滤及对所有用户输入信息进行清理过滤。
通过清理过滤用户输入所包含的危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务。
例如:启动任意SQL查询、嵌入将在客户端执行的Javascript代码、运行各种操作系统命令等。
1.SQL注入文件写入
3.跨站点请求伪造的解决方法

链接注入(便于跨站请求伪造)

通过建立过滤器方法,增加对请求响应信息来源进行判断过滤及对所有用户输入信息进行清理过滤。
通过清理过滤用户输入所包含的危险字符,便可能防 止恶意的用户导致应用程序执行计划外的任务
例如:启动任意 SQL 查询、嵌入将在客户端执行的Javascript代码、运行各种操作系统命令等。
具体实现可参考结合1.SQL注入文件写入 与3.跨站点请求伪造 的解决方法;

Windows文件参数变更

通过建立过滤器方法,增加对所有用户输入信息中是否包含“…”(两个点)字符串进行清理过滤。
具体实现可参考结合1.SQL注入文件写入的解决方法;

Unix文件参数变更

通过建立过滤器方法,增加对所有用户输入信息中是否包含“…”(两个点)字符串进行清理过滤。
具体实现可参考结合1.SQL注入文件写入的解决方法;

检测到应用程序测试脚本

针对代码中出现的测试脚本文件进行清除;脚本文件主要包括以test.php、test.asp、test.cgi、test.html 等;并对一些包含相关的敏感字符文件名称进行修改;敏感字符包括:test、old等;

发现内部IP泄露模式

针对代码中出现的IP地址进行清除

自动填写未对密码字段禁用的HTML属性

在密码输入框中增加autocomplete='off’属性

发现web应用程序源代码泄露模式

针对代码注释中出现的部分源代码进行清除

会话cookie中缺少HttpOnly属性

启动了不安全的HTTP方法

已解密的登录请求

1.对用户所输入的密码在页面进行MD5加密并反馈至密码输入框。

  1. 手动生成SSL安全访问证书;在此不做介绍,相关方法可通过网上查找;

  2. 将产品HTTP访问方式改为SSL安全访问方式;在Apache-Tomcat应用服务器的conf文件夹下的server.xml增加以下代码:

<!--设置SSL(Https)安全访问方式;访问端口为:8443 ->
<Connectorport="8443"minSpareThreads="5"maxSpareThreads="75"
enableLookups="true"disableUploadTimeout="true"
acceptCount="100"maxThreads="200"
scheme="https" secure="true"SSLEnabled="true"
ciphers="SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
keystoreFile="keystore/server.keystore"keystorePass="123456"
clientAuth="false"sslProtocol="TLS"/>

(注:keystore/server.keystore为证书存储路径;123456为证书密码;)
4. 在产品WEB.XML文件中加上以下代码:

<!--解决安全性问题:已解密登录请求;将改为SSL安全访问方式 -->
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

跨站点脚本编制

通过建立过滤器方法,增加对请求响应信息来源进行判断过滤及对所有用户输入信息进行清理过滤。
通过清理过滤用户输入所包含的危险字符,便可能防 止恶意的用户导致应用程序执行计划外的任务。
例如:启动任意 SQL 查询、嵌入将在客户端执行的Javascript代码、运行各种操作系统命令等。
具体实现可参考结合1.SQL注入文件写入 与3.跨站点请求伪造 的解决方法;

跨站点请求伪造

在过滤器中增加对请求响应信息来源进行判断过滤

//解决安全性问题:跨站点请求伪造
   String referer = req.getHeader("Referer");   //REFRESH  
   String serverName = request.getServerName();
if(null != referer&&referer.indexOf(serverName) < 0){
    
                
req.getRequestDispatcher(req.getRequestURI()).forward(req, response);  
   }

会话未更新

在登录页面加入以下代码

//解决安全性问题,会话未更新
request.getSession().invalidate();//清空session
Cookie[] cookies = request.getCookies();//获取cookie
if(null != cookies &&cookies.length> 0){
    
    
for(Cookie cookie : cookies){
    
    
cookie.setMaxAge(0);//让cookie过期
}
}

SQL注入文件写入(需用户验证)

通过建立过滤器方法,对所有用户输入信息进行清理过滤。通过清理过滤用户输入所包含的危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启动任意 SQL 查询、嵌入将在客户端执行的Javascript代码、运行各种操作系统命令等。

[1] |(竖线符号)
[2] &&符号)
[3];(分号)
[4] $(美元符号)
[5] %(百分比符号)
[6] @(at 符号)
[7] \'(单引号)
[8] "(引号)
[9] \\'(反斜杠转义单引号)
[10] \"(反斜杠转义引号)
[11] <>(尖括号)
[12] ()(括号)
[13] +(加号)
[14] CR(回车符,ASCII 0x0d)
[15] LF(换行,ASCII 0x0a)
[16] ,(逗号)
[17] \(反斜杠)

https://www.likecs.com/show-339524.html

猜你喜欢

转载自blog.csdn.net/weixin_44406011/article/details/131715458