污点检验

✍ dations ◷ 2025-11-16 19:25:13 #计算机编程,静态程序分析

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

相关

  • 莉泽·迈特纳莉泽·迈特纳(英语:Lise Meitner,1878年11月7日-1968年10月27日),奥地利-瑞典原子物理学家。她的众多成绩中最重要的是她第一个理论解释了奥托·哈恩1938年发现的核裂变。莉泽·迈
  • 草鱼草鱼(学名:Ctenopharyngodon idella),又称鲩鱼(汉语拼音:huànyú)、
  • 虾蟆无尾目(学名:Anura)是两生纲的一个目,其下生物即蛙或蟾。该目的生物成体基本无尾,卵一般产于水中,孵化成蝌蚪,用鳃呼吸,经过变态,成体主要用肺呼吸,但多数皮肤也有部分呼吸功能。无尾
  • 糖酵解途径糖酵解(英语:glycolysis,又称糖解)是把葡萄糖(C6H12O6)转化成丙酮酸(CH3COCOO− + H+)的代谢途径。在这个过程中所释放的自由能被用于形成高能量化合物ATP和NADH。糖酵解作用是所有
  • 布莱恩·爱普斯坦布莱恩·塞缪尔·爱普斯坦(英语:Brian Samuel Epstein,1934年9月19日-1967年8月27日),生于英国利物浦,犹太人,英国音乐界巨擘,披头士乐队星探及经纪人。生平最伟大的作品莫过于披头士
  • 人民力量党人民力量党(1998年11月9日-2008年12月2日,泰语:พรรคพลังประชาชน)是泰国的政党之一,成立于1998年11月9日。普遍认为它在2006年以后演变为原执政党泰爱泰党的化身。
  • 跳落跳落是生物或物体透过自身力量从高处跳到低处的一种动作。从高层建筑上一跃而下是比较有代表性的做法,其他的包括从断崖上或者天桥上跳下,甚至是从飞机上跳下。这种自杀方法的
  • 妙妙熊历险记《妙妙熊历险记》(英语:Disney's Adventures of the Gummi Bears)是美国1985年制作的卡通影集,于1985年9月14日 (1985-09-14)至1991年2月22日 (1991-02-22)播映,全94集。以下剧
  • 本多胜一本多胜一(1932年3月28日-)是一位日本作家、记者,出生于日本长野县下伊那郡大岛村(现松川町)。
  • SN 1998bwSN 1998bw (GRB 980425)是一种罕见的I型(可能是Ib)超新星,1998年4月26日在望远镜座的漩涡星系ESO 184-G82发现。有科学家认为这颗超新星就是一颗极超新星 。SN 1998bw被认为和1