污点检验

✍ dations ◷ 2025-12-11 01:42:53 #计算机编程,静态程序分析

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

相关

  • 法兰克福大学歌德 - 美茵河畔法兰克福大学(德语:Goethe-Universität Frankfurt am Main),德文简称为“法兰克福大学”(Uni Frankfurt)或“歌德大学”(Goethe Uni)﹔据此,中文亦有称作“歌大”或“
  • 杭州医学院杭州医学院是位于中国浙江省杭州市的一所高等院校,是浙江省卫计委直属的唯一一所医学院校,前身是1925年创建的浙江省立女子产科学校,历经浙江省立杭州高级医事职业学校、杭州卫
  • 后百济君主 · 首都 · 文学史 · 教育史电影史 · 韩医史陶瓷史 · 戏剧史韩国国宝 · 朝鲜国宝后百济(900年—936年),朝鲜半岛后三国之一。892年,新罗西南军阀甄萱起兵,攻占武
  • 蕉鹃目蕉鹃(学名:Musophagidae),是蕉鹃目蕉鹃科的鸟类。
  • 布劳沃德县布劳沃德县(英语:Broward County)是位于美国佛罗里达州东南部的一个县。面积3,418平方公里。根据美国人口调查局2000年统计,共有人口1,777,638人。县治劳德代尔堡。成立于1915年
  • 感光性感光性亦称光敏感度或光敏性(英语:Photosensitivity),是指一个物体在接收光子(多数时候为可见光)时的作用量。在医药学领域,该属于被用作指代皮肤对于光的不正常反应,通常又分为光照
  • CYP6G1CYP6G1基因或称为DDT-R是黑腹果蝇()基因组中涉及杀虫剂DDT(双对氯苯基三氯乙烷)抵抗的基因,位于果蝇的2号染色体,编码的蛋白质属于细胞色素P450超家族,可将DDT氧化代谢掉。
  • 袁庆志袁庆志(1921年1月30日-1988年6月11日),辽宁辽阳人,中国动物传染病学及预防兽医专家。1941年,毕业于奉天兽医养成所兽医本科,1947年参与筹建东北行政委员会农林处家畜防疫所(后中国农
  • 查尔斯·福特Template:Paranormal查尔斯·霍伊·福特(英语:Charles Hoy Fort,1874年8月6日—1932年5月3日), 美国作家,奇异现象学(英语:Anomalistics)研究者。术语(Fortean<note>由姓氏Fort+形容词
  • 张镜心张镜心(1590年-1656年),字孝仲,号湛虚,晚号晦臣,自号云隐居士,直隶磁州(今河北磁县)人,明朝政治人物。官至蓟辽总督。天启二年(1622年)登壬戌科进士,授萧县知县、改定远县、泰兴县知县。崇