SQL注入

SQL注入是一种恶意攻击,用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行。

防范方式

使用mysql_real_escape_string(),或者addslashes()过滤数据

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

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

使用准备好的预处理语句

分离数据和SQL逻辑

预处理语句将自动过滤(如:转义)

把它作为一个编码规范,可以帮助团队里的新人避免遇到以上问题

相比于直接执行SQL语句,预处理语句有两个主要优点

预处理语句大大减少了分析时间,只做了一次查询(虽然语句多次执行)。

绑定参数减少了服务器带宽,你只需要发送查询的参数,而不是整个语句。

预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性。

而在PHP当中,使用预处理语句主要有两种方法

使用mysqli数据库

使用PDOStatement类对象

查询只需要被解析(或准备)一次,但可以使用相同或不同的参数执行多次。当查询准备好(Prepared)之后,数据库就会分析,编译并优化它要执行查询的计划。对于复杂查询来说,如果你要重复执行许多次有不同参数的但结构相同的查询,这个过程会占用大量的时间,使得你的应用变慢。通过使用一个预处理语句你就可以避免重复分析、编译、优化的环节。简单来说,预处理语句使用更少的资源,执行速度也就更快。

服务器的措施

关于SQL注入,不得不说的是现在大多虚拟主机都会把magic_quotes_gpc选项打开,在这种情况下所有的客户端GET和POST的数据都会自动进行addslashes处理,所以此时对字符串值的SQL注入是不可行的,但要防止对数字值的SQL注入,如用intval()等函数进行处理。但如果你编写的是通用软件,则需要读取服务器的magic_quotes_gpc后进行相应处理。

XSS攻击

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

防范方式

是针对非法的HTML代码包括单双引号等,使用htmlspecialchars()函数 。

在使用htmlspecialchars()函数的时候注意第二个参数, 直接用htmlspecialchars($string) 的话,第二个参数默认是ENT_COMPAT,函数默认只是转化双引号(“), 不对单引号(‘)做转义.

所以,htmlspecialchars函数更多的时候要加上第二个参数, 应该这样用: htmlspecialchars($string,ENT_QUOTES).当然,如果需要不转化如何的引号,用htmlspecialchars($string,ENT_NOQUOTES).

另外, 尽量少用htmlentities, 在全部英文的时候htmlentities和htmlspecialchars没有区别,都可以达到目的.但是,中文情况下, htmlentities却会转化所有的html代码,连同里面的它无法识别的中文字符也给转化了。

htmlentities和htmlspecialchars这两个函数对 '之类的字符串支持不好,都不能转化, 所以用htmlentities和htmlspecialchars转化的字符串只能防止XSS攻击,不能防止SQL注入攻击.

代码注入

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

防范方式

过滤用户输入

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

php安全性差,PHP安全性防范方式相关推荐

  1. [html] 说说你对target=“_blank“的理解?有啥安全性问题?如何防范?

    [html] 说说你对target="_blank"的理解?有啥安全性问题?如何防范? 在新的空白页, 打开该链接, 安全性问题, 就是, 如果url中带有敏感信息, 会被第三方网 ...

  2. 对外API接口的安全性设计及鉴权方式

    对外API接口的安全性设计及鉴权方式 API鉴权方式 API Key + API Secret实现API鉴权 Cookie + Session实现API鉴权 token机制实现API鉴权 API接口的 ...

  3. 亚马逊的18种关联因素及防范方式

    首先,亚马逊只允许个人或者公司拥有一个账号.无论是电话.地址.邮箱.姓名.银行卡.电脑IP.网卡.浏览器.cookie.路由器.等等因素存在相同,都可能被判定为关联.但是一般的亚马逊老玩家手里不可能只 ...

  4. ios客户端安全性问题分析及处理方式

    目前,大部分的移动应用都是需要联网,与服务器进行通信,获取最新的数据.一提到网络,肯定就有大量和安全性相关的问题出来.所以,对于我们开发者而言,如何打造一个安全的App,是必须面对的问题.前段时间我专 ...

  5. Science封面:三元锂电池安全性差、寿命短问题已解决,来自美国能源部华人团队最新研究...

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 多年来,电池行业一直在阳极材料上做文章. 不同的电动汽车用着不同材料的电池,比如磷酸铁锂电池.三元锂电池. 目的都是让电池能量密度大一些. ...

  6. target=“_blank“有啥安全性问题?如何防范?

    问题 在调用window下的open方法创建一个新窗口的同时,可以获得一个创建窗口的opener句柄,通过target="_blank"点开的窗口活着标签页,子窗口也能捕获open ...

  7. 简述linux系统的安全性,Linux操作系统的安全性有哪些过人之处

    01用户/文件权限Linux的敲门砖 Linux操作系统的安全性是有目共睹的,相比Windows操作系统,到底Linux有哪些过人之处?这里我们就抛砖引玉,挑选三点重要的特点给大家说明,为什么说Lin ...

  8. android设计安全性,Android操作系统安全性增强方案的设计与实现

    摘要: 随着移动通信技术的发展,移动终端朝着智能化的方向不断迈进,移动互联网业务层出不穷,日益繁荣.但与此同时,移动终端越来越多的涉及商业秘密和个人隐私等敏感信息.移动终端也面临各种安全威胁,如恶意订 ...

  9. 操作系统服务器的安全性,服务器操作系统安全性

    服务器操作系统安全性 内容精选 换一换 在使用裸金属服务器时,您可能会遇到各种问题,比如远程登录.扩容磁盘.重装操作系统.备份服务器等.为方便您获取这些场景的操作指导,本文提供了常用操作的导航.在您开 ...

最新文章

  1. LINUX TOP,不是这样玩地!!!
  2. IDEA调试SpringMvc项目时,出错:找不到ContextLoaderListener
  3. ospf避免环路_OSPF路由协议的区域防环机制
  4. android多功能计算器 源码,Android计算器源码
  5. android实现存储,Android开发实现文件存储功能
  6. Python的重要模块:collections (namedtuple、defaultdict、deque、Counter、OrderedDict、ChainMap)
  7. docker pull 私有_【赵强老师】管理Docker镜像
  8. 【渝粤题库】陕西师范大学200851 微机实用技术
  9. c# 利用AForge和百度AI开发实时人脸识别
  10. 【转】关于Azure存储账户
  11. 分布式选举协议:Bully
  12. Nginx教程负载均衡机制
  13. linux日志.pdf,一种用于LINUX的AUDIT日志分析方法.pdf
  14. LayUI中select下拉框选中触发事件
  15. [转载]使用jquery实现用户名验证
  16. 2022-2027年中国氮化硼行业市场运行现状及投资战略研究报告
  17. 大数据经典实验案例-WordCount原理详解和代码书写
  18. CN2专线和普通国际对比优势在哪里 有什么优势
  19. 如何运用eclipse的编写Java程序
  20. helm install Error: timed out waiting for the condition

热门文章

  1. mysql 中的like查找不忽略大小写
  2. libevent中事件的添加与删除
  3. Activity的用法(三):开启网页 (没有弹出浏览器,不清楚是什么原因)
  4. 上下布局:上部分高度自己撑起,下部分高度占满剩下的全部
  5. git修改远程仓库关联
  6. 使用WireShark简单分析ICMP报文
  7. 使用Windows命令行启动服务
  8. Windows Phone Developer Tools Beta 发布
  9. Google正式收购百度
  10. 利用opencv中的类FileStorage生成和读取XML和YAML文件