污点检验

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

相关

  • 尿素尿素是由碳、氮、氧和氢组成的有机化合物,又称脲(与尿同音)。其化学式为 CON2H4、(NH2)2CO 或 CN2H4O,分子质量60,国际非专利药品名称为 Carbamide(碳酰胺)。外观是无色晶体或粉末,
  • 生长层骨膜是附着在除长骨关节外所有骨骼外层的薄膜。所有骨骼内侧都有骨内膜(英语:endosteum)。骨膜内含有致密不规则结缔组织(英语:dense irregular connective tissue)。骨膜从外至内
  • 羟醛缩和反应羟醛反应(英语:aldol reaction)是有机化学及生物化学中构建碳-碳键最重要的反应手段之一。该反应由查尔斯·阿道夫·武兹和亚历山大·波菲里耶维奇·鲍罗丁于1872年分别独立发现
  • 多囊卵巢综合征多囊性卵巢综合症(Polycystic ovary syndrome,简称PCOS),又称斯-李二氏症(Stein-Leventhal syndrome),是一连串女性因为雄性激素上升所导致的症状。多囊性卵巢的症状包含月经不规律
  • 斯特凡·斯塔姆博洛夫斯特凡·尼科洛夫·斯塔姆博洛夫(Stefan Nikolov Stambolov)(保加利亚语:Стефан Николов Стамболов) (1854年1月31日-1895年7月6日),保加利亚政治家、专横
  • 余㵑余㵑(1903年5月19日-1988年5月20日),字幼臣,后改幼尘,浙江绍兴人,生于北京。中国第一位细菌学博士,微生物学家。1923年北京医学专门学校毕业后,在北京协和医学院任助教。1927年,他被推
  • 罗伯特·杜瓦尔罗伯特·塞尔登·杜瓦尔(英语:Robert Selden Duvall,1931年1月5日-)美国加州圣地牙哥人,是美国1970年代至2000年代著名演技派男影星,1983年以《怜情蜜意》(Tender Mercies)荣获奥斯卡
  • 塔尔西塔尔西(拉脱维亚语:Talsi)位于拉脱维亚西部,是塔尔西区的首府。
  • 田小娟田小娟(韩语:전소연/田小娟 ,1998年8月26日-) ,出生于韩国首尔特别市,韩国女说唱歌手、音乐制作人。现为Cube娱乐旗下女子组合(G)I-DLE,担任队长和主Rapper。2016年,曾出演Mnet综艺
  • 连续波连续波(英语:continuous wave,简称cw),又叫等幅电波,在无线电通信中,特指等幅电报。由于是形如“1、0”的二进制信号,故一般利用摩尔斯电码发送信息。它通过电键控制发信机产生短信