addslashes,htmlspecialchars,htmlentities转换或者转义php特殊字符防止xss攻击以及sql注入

一、转义或者转换的目的

1. 转义或者转换字符串防止sql注入

2. 转义或者转换字符防止html非过滤引起页面布局变化

3. 转义或者转换可以阻止javascript等脚本的xss攻击,避免出现类似恶意弹窗等等形式

二、函数

1. addslashes($str);

此函数转义预定义的字符:单引号(‘),双引号(“),反斜线(\)与NULL(NULL字符)

转义出现在html中的单引号(‘)和双引号(“),经过测试效果不是很好,转义html中的特字符就使用htmlspecialchar()函数

2. htmlspecialchars($str);

此函数只转换5个字符,和号(&),双引号(“),单引号(‘),小于(<),大于(>),转换为实体形式,输出时浏览器会自动还原的,如果有意识的转换回来使用htmlspecialchars_decode();

3. htmlentities();

此函数会把所有html表示都转换为实体形式的,如果把thml实体转换为字符使用html_lentity_decode()

原文地址:https://www.cnblogs.com/jjxhp/p/9780769.html

时间: 2024-10-29 05:06:15

addslashes,htmlspecialchars,htmlentities转换或者转义php特殊字符防止xss攻击以及sql注入的相关文章

php的strip_tags,htmlspecialchars,htmlentities,stripslashes,addslashes解释

php函数蛮多的,要完整的每个函数都理解深刻是个挺有挑战性的事情. strip_tags,htmlspecialchars,htmlentities,stripslashes,addslashes这几个函数我想就需要专门的强化一下. 第一个函数:strip_tags,去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误.而本函数和 fgetss() 有着相同的

php中htmlspecialchars,htmlentities用法

[导读] 在php中htmlspecialchars, 将特殊字元转成 HTML 格式,而htmlentities,将所有的字元都转成 HTML 字串 了,下面我来分别简单的介绍. htmlentities用法 代码如下复制代码 在php中htmlspecialchars, 将特殊字元转成 HTML 格式,而htmlentities,将所有的字元都转成 HTML 字串 了,下面我来分别简单的介绍. htmlentities用法 $str = "John & 'Adams'";e

(转)正则中需要转义的特殊字符小结

既然用到了正则来解析数据,这边顺便记录一下正则中需要转义的特殊字符 特别字符 说明 $ 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'.要匹配 $ 字符本身,请使用 \$. ( ) 标记一个子表达式的开始和结束位置.子表达式可以获取供以后使用.要匹配这些字符,请使用 \( 和 \). * 匹配前面的子表达式零次或多次.要匹配 * 字符,请使用 \*. + 匹配前面的子表达式一次或多次.要匹配 + 字符,请使用 \+.

SQL或HQL预编译语句,能够防止SQL注入,但是不能处理%和_特殊字符

最近项目在做整改,将所有DAO层的直接拼接SQL字符串的代码,转换成使用预编译语句的方式.个人通过写dao层的单元测试,有以下几点收获. dao层代码如下 //使用了预编译sql public List<IndvConfigModel> selectConfigBySuffix(String suffix) { String hql = "from IndvConfigModel where configKey like '%'||?||'%'"; return this.

PHP函数 addslashes() 和 mysql_real_escape_string() 的区别,SQL注入攻击分析

首先:不要使用 mysql_escape_string(),它已被弃用,请使用 mysql_real_escape_string() 代替它. mysql_real_escape_string() 和 addslashes() 的区别在于: 区别一: addslashes() 不知道任何有关MySQL连接的字符集.如果你给所使用的MySQL连接传递一个包含字节编码之外的其他编码的字符串,它会很愉快地把所有值为字符'.".\和\x00的字节进行转义.如果你正在使用不同于8位和UTF-8的其它字符,

PHP安全,防止SQL注入(输入过滤,输出转义)

(1)magic_quotes_gpc选项打开,在这种情况下所有的客户端GET和POST的数据都会自动进行addslashes处理 (2)防止对数字值的SQL注入,如用intval()等函数进行处理 (3)mysql_real_escape_string( string )  addslashes(string) 以上是利用PHP自带函数来防止SQL注入 下面提供一个例子,是在一个页面实现过滤,然后,需要用到的页面引入代码即可 #整站防注入 if (@magic_quotes_gpc()) {

【Javaweb】后台的字符串转义,入库之前记得先对字符串转义防止sql注入问题

在<[JavaScript]某些字符不转义可以导致网页崩溃与涉及转义字符的显示方法>(点击打开链接)提及到一种表单之前,必须把表单的输入框的内容转义的方法,但是,其实这种字符串的转义更加应该放在后台中进行.这样同时能够有效地防止sql注入的问题. 所谓的sql注入是什么呢?比如,你做了一个登录功能什么的.你必须把根据用户输入的用户名,查询存放在数据库的密码的,然后与密码比对是不是? select语句一般这样写select username,password from userinfo表 whe

把sql注入关键字全部一次性自动转换成全角

String.prototype.replaceAllStr = function (s1, s2) {    //JS字符串方法扩展 return this.replace(new RegExp(s1, "gm"), s2); } $(function(){ var aa = "abmastercdmasterasdfd insert 11112222exec"; var checkWord = ["master", "insert&

特殊字符的过滤,防止xss攻击

概念 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中. 项目环境 spring + struts2 +.....(仅列举相关的) 需求 防止xss攻击 分析 1.防止xss攻击,可以从请求处拦截特殊字符,核心是过滤特殊字符串 2.由于项目是采用struts2来处理请求的,所以应从struts处着手