污点检验

✍ dations ◷ 2025-12-06 11:43:59 #计算机编程,静态程序分析

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

相关

  • 相关在概率论和统计学中,相关(Correlation),显示两个随机变量之间线性关系的强度和方向。在统计学中,相关的意义是用来衡量两个变量相对于其相互独立的距离。在这个广义的定义下,有许
  • 火龙卷火龙卷,又称为火焰龙卷风、火焰漩涡、火灾旋风等,是当空气中的漩涡乱流因为高热及风向造成的湍流结合而形成,在旋风内有火焰。当这些涡旋空气继续收紧至类似龙卷风的结构时,可以
  • 酒渣鼻酒糟鼻(Rosacea,又称玫瑰痤疮)是一种以脸部红斑 和丘疹(有时)为特点的慢性皮肤病。酒糟鼻在所有年龄层都可能发病并且分为四种类型,其中三种患及皮肤,而第四种患及眼睛。疾病若得不
  • 扎卡里·泰勒扎卡里·泰勒(Zachary Taylor,1784年11月24日-1850年7月9日),第12任美国总统、美国陆军退役少将。扎卡里•泰勒于1784年11月24日出生在维吉尼亚州的奥兰治县由他外祖父拥有的野兔
  • 卵圆窗卵圆窗(oval window)/(vestibular window)是由中耳到内耳的一个肾状形小窗。实现听觉知觉。Cochlea
  • 府城客运府城汽车客运股份有限公司(英语:Tainan Bus),简称:府城客运,经营台南市市区公车。府城客运为高雄客运转投资之子公司,接手高雄客运之台南市公车路线。原先行驶台南市公车的台南客运
  • 郑洞天郑洞天(1944年5月-),籍贯河南罗山,生于重庆,中国电影导演,1966年毕业于北京电影学院导演系,1976年回到北京电影学院导演系任教。1982年执导的电影《邻居》获第2届中国电影金鸡奖最佳
  • 王文在王文在(1834年-1889年),字念堂,号杏坞,山西稷山县坞堆村人。父亲王天祥,字瑞宇,道光年间贡生,兄王文化,弟王文秀。出身书香门第,自幼聪颖好学。同治三年(1864年)参加甲子科山西乡试,中第十
  • 橡皮头《橡皮头》(英语:)是一部1977年的美国超现实主义肉体恐怖电影,由大卫·林奇自编自导并担任制片人,是一部黑白片,也是林奇的第一部长片电影,他在此以前只制作过几部短片。本片的制作
  • SN 1998bwSN 1998bw (GRB 980425)是一种罕见的I型(可能是Ib)超新星,1998年4月26日在望远镜座的漩涡星系ESO 184-G82发现。有科学家认为这颗超新星就是一颗极超新星 。SN 1998bw被认为和1