污点检验
词条百科 1
目录
污点检验
点检是某些计算机编程语言中的一项功能,旨在通过防止恶意用户在主机上执行命令来提高安全性。 污点检查突出显示主要与使用 SQL 注入或缓冲区溢出攻击方法等技术攻击的网站相关的特定安全风险。
概览
污点检查背后的概念是,任何可以由外部用户修改的变量(例如由 Web 表单中的字段设置的变量)都会带来潜在的安全风险。 如果该变量用在设置第二个变量的表达式中,那么第二个变量现在也是可疑的。 然后,污点检查工具可以逐个变量进行处理,形成可能受外部输入影响的变量列表。 如果这些变量中的任何一个被用来执行危险的命令(例如直接向 SQL 数据库或主机操作系统发出命令),污点检查器会警告程序正在使用具有潜在危险的污点变量。 计算机程序员然后可以重新设计程序以在危险输入周围竖起安全墙。
污点检验可被视为对非干扰全面验证或更一般的安全信息流概念的保守近似。 由于系统中的信息流无法通过检查该系统的单个执行跟踪来验证,因此污点分析的结果必然会反映有关其所应用系统的信息流特征的近似信息。
例子
如果打开了污点检查,Perl 将拒绝运行命令并退出并显示一条错误消息,因为在 SQL 查询中使用了污点变量。更安全的方法是将 $name 的受污染值编码为 SQL 字符串文字,并在 SQL 查询中使用结果,确保不会评估 $name 中嵌入的危险命令。
实现这一点的另一种方法是使用准备好的语句来清理查询的所有变量输入。
需要注意的一件事是 Perl DBI 需要设置数据库句柄的 TaintIn 属性以及启用污点模式来检查一个人的 SQL 字符串。
内容来源于网络,本内容不代表16map.com立场,内容投诉举报请联系16map.com客服。如若转载,请注明出处:https://16map.com/wiki/nmjeei4loidg