污点检验

✍ dations ◷ 2025-11-18 09:08:38 #计算机编程,静态程序分析

污点检验是某些程序语言所拥有的特性,例如Perl和Ruby,可用于增加安全性和避免恶意用户在主机上执行命令。污点会检验突出的安全风险,一般来说这些风险与那些使用SQL注入或缓冲区溢出攻击的网站相关。

污点检验的原理是任何变量(例如在网页表单区域的一个变量集)能够被外部用户修改,从而造成了潜在的安全危险。如果该变量被一个表达式赋值给第二个变量,那么第二变量也是可疑的。污点检验工具在变量间传递运行,直到外部输入潜在地影响到所有的变量。如果这些变量中任何一个变量被用于执行危险命令(例如对SQL数据库或主机操作系统的直接命令),污点检检验工具将警告该程序正在使用有潜在危险的污点变量。程序员可以通过重新设计程序来避免因危险的输入而导致的安全问题。

污点检验能够被视为一个无界面全面验证的保守近似或者是更一般化的安全信息流概念。因为系统中的信息流不能通过检验一个简单的执行追踪而被验证,污点分析的结果将必然地反映关于该系统信息流特征的近似信息。

以下危险的Perl代码在没有检验$name变量的值情况下,启动了一个大型SQL注入漏洞:

#!/usr/bin/perlmy $name = $cgi->param("name");  # Get the name from the browser...$dbh->TaintIn = 1;$dbh->execute("SELECT * FROM users WHERE name = '$name';"); # Execute a SQL query

如果开启污点检验,那么Perl将会拒绝运行命令,显示错误信息并退出,因为一个污点变量正在SQL查询中被使用。没有污点检验,用户能进入foo'; DROP TABLE users --,因此运行命令将删除全部的数据库表。更安全的方法是将$name的污点值编码到一个SQL字符串字面值和使用SQL查询的结果,这保证了没有嵌入在$name的危险命令会被执行。另一方法是使用预处理语句去净化所有变量输入。

需要注意的是Perl DBI需要设定数据库句柄的TaintIn属性,才允许污点模式去检验该SQL字符串。

Perl从至少1989年当T switch加入到Perl 3的时候开始支持污点化。

在1996年,网景同时在网景通讯服务器的服务器端JavaScript和客户端的网景浏览器3上实现数据污点化。然而,自从客户端支持被当作实验性功能,该功能被禁用(要求用户手动激活),而且需要页面作者修改脚本才能使用。而其他浏览器从未实现这个功能,通讯服务器也没有大体完成,微软后来成了新的互联网信息提供商。

相关

  • 眼蕈蚊总科眼蕈蚊总科(学名:Sciaroidea),又名黑翅蕈蚋总科,华南及海外华人社区俗称其物种作蚊滋或蚊滋仔,是双翅目长角亚目毛蚋下目一个昆虫的总科。这些物种的体型都很细小、深色、而且寿命
  • 动物分类学生物分类学(英语:biotaxonomy)通常直接称分类学(英语:taxonomy;法语:taxonomie;西班牙语:taxonomía),是一门研究生物类群间的异同程度,阐明生物间的亲缘关系、进化过程和发展规律的科学
  • 德阳舰军舰博物馆坐标:22°59′18.7980″N 120°09′22.8168″E / 22.988555000°N 120.156338000°E / 22.988555000; 120.156338000武进三型: DA-08/2维对空搜索雷达1990年武进三型:德阳号驱
  • 米尔士威尔逊·米尔士(英语:Wilson Plumer Mills,1883年12月1日-1959年12月26日),美北长老会差会牧师。南京大屠杀期间,任南京安全区国际委员会成员。1883年生于南卡罗来那州温斯伯勒,1903
  • 克留格尔国家公园克留格尔国家公园(英语:Kruger National Park),又译克鲁格国家公园,是南非的国家公园,占地19,485平方千米(7,523平方英里),是非洲最大的自然保护区之一。它是以南非共和国总统保罗·
  • 浊颚龈塞擦音浊颚龈塞擦音或浊拱龈后塞擦音(voiced palato-alveolar affricate 或 voiced domed postalveolar affricate)dʒ是 tʃ 相应的浊音。英语、法语、葡萄牙语、罗马尼亚语的dj的
  • 浊唇齿擦音浊唇齿擦音是辅音的一种,用于一些口语中。浊唇齿擦音在国际音标的符号是⟨v⟩,X-SAMPA音标的符号则是⟨v⟩。汉语中的吴语、关中话均有此音,其余像北京官话及粤语均清化为。客
  • 领果蝠属领果蝠属(孤领果蝠),哺乳纲、翼手目、狐蝠科的一属,而与领果蝠属(孤领果蝠)同科的动物尚有侏果蝠属(侏果蝠)、细齿狐蝠属(细齿狐蝠)、小狐蝠属(非洲小狐蝠)、无尾果蝠属(无尾果蝠)等之数种
  • 第22届日本电影学院奖第22回日本电影学院奖于1999年3月12日公布并举行颁奖仪式。
  • BirdyBirdy,昵称为鸟车,由Riese und Müller所设计的折叠车,1995年时由生产。这项设计在1993年获 Hessian Innovation Prize,并且在1994的 IFMA 展及 Eurobike 展中展出,获得不错评价