第1页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共6页规则1:绝不要信任外部数据或输入关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据
外部数据(outsidedata)包括不是由程序员在PHP代码中直接输入的任何数据
在采取措施确保安全之前,来自任何其他来源(比如GET变量、表单POST、数据库、配置文件、会话变量或cookie)的任何数据都是不可信任的
例如,下面的数据元素可以被认为是安全的,因为它们是在PHP中设置的
安全无暇的代码1
以下为引用的内容:2
$myUsername='tmyer';3
$arrayUsers=array('tmyer','tom','tommy');4
define("GREETING",'hellothere'
$myUsername);5
>但是,下面的数据元素都是有瑕疵的
不安全、有瑕疵的代码1
以下为引用的内容:2
$myUsername=$_POST['username'];//tainted
$arrayUsers=array($myUsername,'tom','tommy');//tainted
define("GREETING",'hellothere'
$myUsername);//tainted
>为什么第一个变量$myUsername是有瑕疵的
因为它直接来自表单POST
用户可以在这个输入域中输入任何字符串,包括用来清除文件或运行以前上传的文件的恶意命令
您可能会问,“难道不能使用只接受字母A-Z的客户端(Javascrīpt)表单检验脚本来避免这种