污点检验

✍ dations ◷ 2025-12-10 06:35:18 #计算机编程,静态程序分析

污点检验是某些程序语言所拥有的特性,例如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上实现数据污点化。然而,自从客户端支持被当作实验性功能,该功能被禁用(要求用户手动激活),而且需要页面作者修改脚本才能使用。而其他浏览器从未实现这个功能,通讯服务器也没有大体完成,微软后来成了新的互联网信息提供商。

相关

  • 著名心理学家本条目按字母顺序列举显著的心理学家。目录 A B C D E F G H I J K L M N O P Q R S T U V W X Y ZAndrés Qiu 1980年代著名的心理学家 出生地西班牙
  • 化疗脑化疗脑,在学界又称化疗后认知异常(Post-chemotherapy cognitive impairment,简称PCCI)或化疗相关认知异常(Chemotherapy-Related Cognitive Impairments,简称CRCIs)等,所指的是因为
  • 紫水玉簪纤草(学名:Burmannia itoana),又名紫水玉簪,为水玉簪科水玉簪属的植物。分布于台湾岛、日本以及中国大陆的广西、广东等地,多生长于林下,目前尚未由人工引种栽培。
  • 猪传染性胃肠炎猪传染性胃肠炎(Porcine Transmissible gastroenteritis, TGE)是猪的一种急性传染病,以猪的胃肠炎为主要特征。猪传染性胃肠炎被OIE列为B类疾病。在中华人民共和国农业部公布的
  • 肘部肘是指手臂中部,连接上臂与前臂的铰链关节——肘关节附近的区域。有三块骨头与肘关节相连:上臂的肱骨、前臂的尺骨和桡骨。肘尖的突出物是尺骨鹰嘴,而肘内部的外表构造称为肘前
  • 国际商会国际商会(英语:International Chamber of Commerce,缩写ICC;法语:Chambre de commerce internationale)创建于1919年,是世界上最大、最有代表性的商业组织。它数以千百计的成员来自
  • 朱时茂朱时茂(1954年3月28日-),山东临沂人,生于烟台市福山县(现福山区),中国著名小品、影视演员。1970年加入中国人民解放军福州军区话剧团。1977年拍摄电影《牧马人》进入影坛。1980年代
  • 圣博纳迪诺县圣贝纳迪诺县(英文:San Bernardino County)是美国加利福尼亚州东南部的一个县,东邻内华达州和亚利桑那州,东界科罗拉多河。面积52,073平方公里,是美国本土面积最大的县(排除被称为
  • Welcome to TOKYO《Welcome to TOKYO》是日本男子音乐组合第三代J Soul Brothers的第20张单曲。于2016年11月9日由rhythm zone发售。
  • 边陲经济边陲经济概念首为知名经济学家华勒斯坦提出,相对的经济体系有核心经济与半边陲经济。知名经济学家华勒斯坦,于20世纪中后期,将其世界体系分为三大部分,分别为核心,半边陲与边陲。