继续为您带来Fortify SCA源代码扫描工具漏洞处理系列文章,今天为您介绍动态代码注入(Dynamic Code Evaluation: Code Injection)
许多的编程语言都允许动态解析源代码的指令,使程序员能够执行基于用户输入的动态指令。当程序员错误地认为,由用户直接提供的指令,仅仅会执行一些无害操作时(例如对当前用户对象进行简单计算或者修改用户状态),这时就会出现code injection 漏洞。
如果不经过适当的验证,由用户所指定的操作可能并不是程序员最初所期望的。所以,在任何时候都应该尽可能地避免解析动态代码,如果当程序必须动态地解释代码时,必须要对用户输入的内容进行过滤。尽可能地限制程序中动态执行代码的数量,并且将代码限制到基本编程语言的程序特定的和上下文特定的子集当中。且程序不能够直接解析以及执行没有经过验证的用户输入,而是应当采取间接办法:如创建一份合法操作和数据对象列表,用户可以指定其中的内容,并且只能够从中进行选择,利用这种办法,就可以避免直接执行由用户提供的输入,并且避免了code injection 漏洞的发生。
希望今天的这篇文章能够对您的安全编码有所帮助,后面我们会持续为您的带来更多的Fortify SCA源代码扫描工具常见的漏洞类型,帮助您更好地了解漏洞、预防漏洞、以及修复漏洞。如您还有其他问题,可以点击右侧二维码或电话方式联系我们,我们有专业的技术人员会为您详细解答,感谢您的观看。