PHP 安全性攻击

一、SQL注入php

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

防止SQL注入 mysql

  使用mysql_real_escape_string()过滤数据web

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

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

  使用准备好的预处理语句浏览器

  分离数据和SQL逻辑安全

  预处理语句将自动过滤服务器

二、XSS攻击cookie

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

     致使

  烦人的弹窗

  刷新或重定向

  损坏网页或表单

  窃取cookie

  AJAX

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

三、会话捕获和劫持

若是会话ID存储在Cookie中,攻击者能够经过XSS和JavaScript窃取。若是会话ID包含在URL上,也能够经过嗅探或者从代理服务器那得到。

防止会话捕获和劫持

  更新ID

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

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

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

防止跨站点请求伪造

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

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

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

五、代码注入

 防止代码注入

   过滤用户输入

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

相关文章
相关标签/搜索