6个常见的 PHP 安全性攻击(2)


6、代码注入

代码注入是利用计算机漏洞通过处理无效数据造成的。问题出在,当你不小心执行任意代码,通常通过文件包含。写得很糟糕的代码可以允许一个远程文件包含并执行。如许多PHP函数,如require可以包含URL或文件名,例如:

<form>Choose theme:     <select name = theme>         <option value = blue>Blue</option>         <option value = green>Green</option>         <option value = red>Red</option>     </select>     <input type = submit> </form> <?php     if($theme) {         require($theme.'.txt');     } ?>

在上面的例子中,通过传递用户输入的一个文件名或文件名的一部分,来包含以"http://"开头的文件。

防止代码注入

过滤用户输入 在php.ini中设置禁用allow_url_fopen和allow_url_include。这将禁用require/include/fopen的远程文件。 其他的一般原则

1. 不要依赖服务器配置来保护你的应用,特别是当你的web服务器/ PHP是由你的ISP管理,或者当你的网站可能迁移/部署到别处,未来再从别处迁移/部署在到其他地方。请在网站代码中嵌入带有安全意识的检查/逻辑(HTML、JavaScript、PHP,等等)。  
2. 设计服务器端的安全脚本:
—例如,使用单行执行 - 单点身份验证和数据清理  
—例如,在所有的安全敏感页面嵌入一个PHP函数/文件,用来处理所有登录/安全性逻辑检查
3. 确保你的代码更新,并打上最新补丁。 

英文原文 , OSChina翻译

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wypwyy.html