zl程序教程

您现在的位置是:首页 >  后端

当前栏目

PHP 安全性攻击

PHP攻击 安全性
2023-09-14 09:00:01 时间

1、SQL注入

SQL注入是一种恶意攻击,用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行。还有一种是通过system()或exec()命令注入的,它具有相同的SQL注入机制,但只针对shell命令。

防止SQL注入 

  使用mysql_real_escape_string()过滤数据

  手动检查每一数据是否为正确的数据类型

  使用预处理语句并绑定变量

  使用准备好的预处理语句

  分离数据和SQL逻辑

  预处理语句将自动过滤

2、XSS攻击

  XSS(跨站点脚本攻击)是一种攻击,由用户输入一些数据到你的网站,其中包括客户端脚本(通常JavaScript)。如果你没有过滤就输出数据到另一个web页面,这个脚本将被执行。

     导致

  烦人的弹窗

  刷新或重定向

  损坏网页或表单

  窃取cookie

  AJAX

防止XSS攻击,使用PHP的htmlentities()函数过滤再输出到浏览器

3、会话捕获和劫持

如果会话ID存储在Cookie中,攻击者可以通过XSS和JavaScript窃取。如果会话ID包含在URL上,也可以通过嗅探或者从代理服务器那获得。

防止会话捕获和劫持

  更新ID

  使用会话,请确保用户使用SSL

4、跨站点请求伪造(CSRF)

  CSRF攻击,是指一个页面发出的请求,看起来就像是网站的信任用户,但不是故意的

防止跨站点请求伪造

  确保用户来自你的表单,并且匹配每一个你发送出去的表单。主要有两点:

  对用户会话采用适当的安全措施,例如:给每一个会话更新id和用户使用SSL。

  生成另一个一次性的令牌并将其嵌入表单,保存在会话中(一个会话变量),在提交时检查它。

5、代码注入

 防止代码注入

   过滤用户输入

  在php.ini中设置禁用allow_url_fopen和allow_url_include。这将禁用require/include/fopen的远程文件。