运行静态扫描时,我收到一个Veracode错误:操作系统命令(“操作系统命令注入”)中使用的特殊元素的中和不当(CWE ID 78)
应用程序调用一个进程,其中包含我从前端收到的参数(应用程序在内部使用,这是一个userId)。
ProcessBuilder pb = new ProcessBuilder(PROCESS, "-A", argument);
Process p = pb.start(); // Veracode is mentioning this line
我如何解决这个Veracode问题?有没有“安全”的方式来运行流程?
听起来这是您应用程序中的架构问题。我很确定您不想执行用户作为请求参数作为OS命令传递的假定userid。这将是设计上的OS命令注入。
理想的解决方案是避免创建新的操作系统进程,并使用内置的Java功能来实现您的目标。
如果您必须运行外部进程,请不要将用户输入包含在您正在运行的内容中。例如,如果您要运行静态字符串ps aux
并且在Java中执行“grep”位,Veracode查找将消失,并且它将更加安全。
如果您必须包含用户输入,请确保它经过严格验证。请注意,对于操作系统命令注入,有时只需要字母就足够了,尽管已经进行了验证,但Veracode会正确地将其标记为易受攻击。在这种情况下,如果您确信通过验证不可能运行任何恶意的东西,那么可以在Veracode中将发现标记为“通过设计缓解”。
假设您的userId有一个定义良好的格式(数字、十六进制数字、字母数字、...),也许它总是相同的长度。
您必须通过正则表达式将userId匹配到适当的字符类来验证它,并拒绝任何不符合要求的内容,否则,您会受到以下攻击:
输入用户名:diginoise;rm-射频/
Fortify安全审查告诉我们一些路径操作漏洞。大多数都是显而易见的简单解决方案,但我不明白如何解决以下问题。 "wsdlPath"是从文本框中输入的。这是无法解决的问题吗?我可以验证路径是否存在,等等,但是这对漏洞有什么帮助呢?
像这样的陈述 符合SQL注入条件。但PreparedStatement如何帮助防止SQL注入呢?考虑以下场景: 如果有人输入和怎么办,因为这也将被视为有效的字符串...
WSO2IS 5.8包括Log4j 1.2。17 已针对Log4j 1识别出一个安全漏洞CVE-2019-17571。Log4j包括一个SocketServer,它接受序列化的日志事件并反序列化它们,而不验证是否允许对象。这可以提供可以被导出的攻击向量。 有人知道是否可以在WSO2IS 5.8的上下文中利用此漏洞? 提前谢谢!
讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 原理与危害 SQL 注入就是指,在输入的字符串中注入 SQL 语句,如果应用相信用户的输入而对输入的字符串没进行任何的过滤处理,那么这些注入进去的 SQL 语句就会被数据库误认为是正常的 SQL 语句而被执行。 恶意使用 SQL 注入攻击的人可以通过构建不同的 SQL 语句进行脱裤、命令执行、写 Webshell、读取度武器
典型的安全漏洞 Web 典型的安全漏洞种类很多,如 XSS, CSRF, SQL注入,Cross IFrame Trick, clickJacking, 文件上传 等等。下面列举两种客户端常见的安全漏洞。 XSS XSS (Cross Site Scripting),跨站脚本攻击。为了和层叠样式表(Cascading Style Sheets,CSS)区分开,跨站脚本在安全领域叫做 XSS。攻击者
本文向大家介绍操作系统的保护与安全,包括了操作系统的保护与安全的使用技巧和注意事项,需要的朋友参考一下 保护和安全性要求保护计算机资源,例如CPU,软件,内存等。这扩展到操作系统以及系统中的数据。这可以通过确保操作系统中的完整性,机密性和可用性来完成。该系统必须防止未经授权的访问,病毒,蠕虫等。 保护与安全威胁 威胁是一种本质上是恶意的程序,会对系统造成有害影响。系统中发生的一些常见威胁是- 病毒