污点检验

✍ dations ◷ 2025-12-09 11:13:21 #计算机编程,静态程序分析

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

相关

  • 泛神论泛神论(英语:Pantheism)是一种将大自然与神等同起来,以强调大自然的至高无上的哲学观点。认为神就存在于自然界一切事物之中,并没有另外的超自然的主宰或精神力量。这种观点自十
  • 黄耆黄芪,又称北芪,亦作黄耆,常用中药之一,一般指豆科黄芪属(Astragalus)植物。主产于中国大陆的内蒙古、山西、黑龙江等地。春秋两季采挖,除去须根及根头,晒干,切片,生用或蜜炙用。黄芪可
  • 胞外在细胞生物学、分子生物学及其相关领域中,胞外,或细胞外(extracellular,有时亦作胞外空间/细胞外空间(extracellular space))指“在细胞外”。通常,胞外空间位于质膜之外,被流体占据(
  • 斯坦尼斯拉斯广场坐标:48°41′38″N 6°10′59″E / 48.69389°N 6.18306°E / 48.69389; 6.18306斯坦尼斯拉斯广场(Place Stanislas)是法国洛林大区城市南锡的一个大型的行人广场。1983年,斯坦
  • 咒可以指:
  • 超链接超链接(英语:Hyperlink)是指超文本内由一文件连接至另一文件的链接。作用与论文中的参考或注释类似,以方便读者随时参考某一词汇的定义。超链接有点像是文学作品中的参考资料列
  • 伊泽尔河谷伊泽尔河(Isère)是法国东南部罗纳-阿尔卑斯大区的一条河流,全长286公里,发源于意大利边境的阿尔卑斯山脉,靠近滑雪胜地瓦尔德伊泽尔(Val d'Isère),在瓦朗斯以北注入罗纳河 (左岸)
  • 文莱经济文莱是世界上最富有的国家之一,国民无须缴交个人所得税。原油和天然气是国家的主要支柱,总产值几乎占整个国家国内生产总值90%。在东南亚,石油储量和产量仅次于印度尼西亚,居第2
  • 孟买市郊铁路孟买市郊铁路(马拉地语: मुंबई उपनगरीय रेल्वे)系统是孟买公共交通系统的重要组成部分,由2个邦立印度铁路——西部铁路和中央铁路经营。该系统每日运送超过7
  • 金胞藻目金胞藻目(Chrysomonadales) 为藻类植物之一种。该植物于植物分类表上,归于金藻门 (Chrysophyta)金藻纲 (Chrysophyceae),同纲者尚有根金藻目(Rhizochrysidales)。