代码扫描问题以及建议

未使用HTTPS

漏洞定义
  • HTTP是超文本传输协议,信息是明文传输,传输的内容容易被攻击者通过工具嗅探网络获得,导致用户的敏感信息泄漏。
修复建议
  • HTTPS的全称是Secure Hypertext Transfer Protocol(安全超文本传输协议),是在HTTP协议基础上增加了使用SSL加密传送信息的协议,可以保障信息在传输过程中的安全,以防信息泄漏。通过配置强制所有的访问都必须通过HTTPS协议,可以保障网站信息在传输过程中的保密性和完整性。

空指针引用

漏洞定义
  • 程序中引用空指针,会导致空指针异常。
修复建议
  • 在不确定变量是否为null的情况下,添加判断,确保变量不是null的情况下,再使用变量。

日志伪造

漏洞定义
  • 用户输入的参数未做任何验证直接写入日志文件,导致攻击者可以通过特殊字符在日志中注入新的日志条目,破坏系统日志的完整性
修复建议
  • 解决方案1 – 编码
    在使用输入的参数写入日志文件之前,对特殊字符进行统一编码。
  • 解决方案2 – 输入验证
    在使用输入的参数写入日志文件之前,对参数的值进行输入验证,保证有危险的字符不会进入日志文件。

不安全的系统输出

漏洞定义
  • 使用System。out和System。err将程序的信息输出,由于这些API只是将信息输出到控制台,难以用于监控程序的运行状况。
修复建议
  • 结构化日志API制定了规范的日志记录格式,如日志产生时间、日志级别、操作、操作结果、操作者等。记录完整的日志信息不仅可以用户监控程序的运行状态,还可以用户作为追踪和起诉攻击者的有利证据。

服务器端请求伪造

漏洞定义
  • 很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片、下载文件、读取文件内容等。这个功能如果被恶意使用,可以把存在缺陷的web应用作为代理攻击远程和本地的服务器。这种形式的攻击称为服务端请求伪造。
修复建议
  • 服务器端请求伪造产生的根本原因在于直接使用了用户提供的URL而未进行任何验证,可以利用输入验证,通过只允许用户使用指定域名的URL的方式彻底避免此类问题。

不安全的调用Thread.stop()

漏洞定义
  • 程序调用stop()方法终止线程,结果可能是在终止线程的过程中出现ThreadDeath异常,这可能会导致对象出现不一致状态,并且会泄露资源。由于此 API 本质上并不安全,因此很久以前就已弃用。
修复建议
  • 使用boolean类型的变量控制线程是否停止,实现起来比较简单,也不会造成数据不一致的问题。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值