addslashes

htmlspecialchars、strip_tags和addslashes的区别

筅森魡賤 提交于 2019-12-05 08:48:26
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。 预定义的字符是: & (和号) 成为 & " (双引号) 成为 " ' (单引号) 成为 ' < (小于) 成为 < > (大于) 成为 > addslashes() 函数在指定的预定义字符前添加反斜杠。 这些预定义字符是: 单引号 (') 双引号 (") 反斜杠 (\) NULL <?php $str = "Who's John Adams?"; echo $str . " This is not safe in a database query.<br />"; echo[object Object]de> . " This is safe in a database query."; ?> Who's John Adams? This is not safe in a database query. Who\'s John Adams? This is safe in a database query. strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签。 即不带任何的标记,转换成字符串。 <?php echo strip_tags("Hello <b><i>world!</i></b>",[object Object]de>); ?> strip_tags

PHP的htmlspecialchars、strip_tags、addslashes解释

守給你的承諾、 提交于 2019-12-04 09:03:56
第一个函数:strip_tags,去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串。若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误。而本函数和 fgetss() 有着相同的功能。fgetss是从文件中读取文件,并去掉html和php标记。 第二个函数:htmlspecialchars, 将特殊字元转成 HTML 格式 详细说本函数会转化一下字符 & (和) 转成 & " (双引号) 转成 " < (小于) 转成 < > (大于) 转成 > 第三个函数:htmlentities,将所有的字元都转成 HTML 字串 可能你还在遗憾htmlspecialchars只能处理4个html标记,现在你不要遗憾了,htmlentities是转化全部字符。不可无不强大,但是在我看来意义不大。 第四个函数:stripslashes与addslashes本是一对,addslashes是使用反斜线引用字符串,stripslashes是还原addslashes引用的字符串。 该函数一般都是数据库查询之前就需要处理的必要步骤,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。 来源: oschina 链接: https:/

php---------字符串转义函数(addslashes,stripslashes)

一世执手 提交于 2019-12-04 09:03:43
在PHP中,有两个函数与字符串的转义有关,他们分别是 addslashes 和 stripslashes。 addslashes($string), 在指定的预定义字符前添加反斜杠 (\),用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串。 注释:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。 stripslashes($string),是addslashes()的反函数,用于删除由 addslashes() 函数添加的反斜杠以还原被转义的字符,也叫反转义,主要用于清理从数据库或 HTML 表单中取回的数据。 那么 addslashes 会对哪些字符进行转义呢,如下: 单引号 (') 双引号 (") 反斜杠 (\) NULL 另外,以单引号为定界符的字符串,支持两个转义字符: 单引号 (') 反斜杠 (\) 以双引号为定界符的字符串,支持下列转义: \n 换行 (LF 或 ASCII 字符 0x0A (10)) \r 回车 (CR 或 ASCII 字符 0x0D

php stripslashes和addslashes的区别

不打扰是莪最后的温柔 提交于 2019-12-04 09:03:32
PHP为了安全性,所以引入了个 magic_quotes_gpc = On 的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境。 当 magic_quotes_gpc = On 时,使用了 addslashes() 处理后的数据在数据库中将以\'形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个\,因此 stripslashes() 出场了,它能把\去掉(区别于str_replace(”\”, “”,$Str))。 当 magic_quotes_gpc = Off 时,使用了 addslashes() 处理后的数据在数据库中将以'形式保存,没有上面说的有\的问题,addslashes()起到插入数据不出错的作用,如果此时直接输出的话,数据正常。不需要再用 stripslashes()。 addslashes()和stripslashes()正好是相反的,直接记忆:addslashes()加个\,stripslashes()去个\ 那么什么时候用呢? 简单说: 当magic_quotes_gpc = On时,系统会自动处理单引号等问题,用不用addslashes()和stripslashes()都没关系,但是如果添加数据时用了addslashes(),那么显示数据时必须要stripslashes(

函数addslashes和stripslashes小结

只谈情不闲聊 提交于 2019-12-03 06:49:48
add+slashes[ n.斜杠 ] :意思是添加斜杠,函数定义:函数在指定的预定义字符前添加反斜杠,其中预定义字符包括{',",\,NULL}四个字符,作用防止MYSQL注入。 strip+slashes[]:去掉个斜杠,函数定义:函数删除由 addslashes() 函数添加的反斜杠。 1. 对于PHP magic_quotes_gpc=on的情况: 我们可以不对输入和输出数据库的字符串数据作addslashes()和stripslashes()的操作,数据也会正常显示。 【 注:如果此时你对输入的数据作了addslashes()处理,那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。 】 2. 对于PHP magic_quotes_gpc=off 的情况: 必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出,因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。 注:magic_quotes_gpc 魔术引用设置,【gpc分别为get,post,cookie 的缩写】,如果遇到无法修改php.in配置时,可以通过函数 get_magic_quotes_gpc () 来获得此时配置状态,返回0,说明 magic_quotes_gpc=off, 返回1, 说明

Antidote for magic_quotes_gpc()?

前提是你 提交于 2019-12-01 01:16:09
I've seen dozens of PHP snippets that go like this: function DB_Quote($string) { if (get_magic_quotes_gpc() == true) { $string = stripslashes($string); } return mysql_real_escape_string($string); } What happens if I call DB_Quote("the (\\) character is cool"); ? (Thanks jspcal!) Aren't we supposed to strip slashes only when get_magic_quotes_gpc() == true and the value originated from $_GET , $_POST or $_COOKIE superglobals? Yeah, I've seen dozens of PHP snippets like that, too. It's a bit sad. Magic quotes are an input issue. It has to be fixed at the input stage, by iterating the GET/POST

Antidote for magic_quotes_gpc()?

感情迁移 提交于 2019-11-30 20:44:05
问题 I've seen dozens of PHP snippets that go like this: function DB_Quote($string) { if (get_magic_quotes_gpc() == true) { $string = stripslashes($string); } return mysql_real_escape_string($string); } What happens if I call DB_Quote("the (\\) character is cool"); ? (Thanks jspcal!) Aren't we supposed to strip slashes only when get_magic_quotes_gpc() == true and the value originated from $_GET , $_POST or $_COOKIE superglobals? 回答1: Yeah, I've seen dozens of PHP snippets like that, too. It's a

PHP引号转义中解决POST,GET,Mysql数据自动转义问题

天涯浪子 提交于 2019-11-30 18:47:28
在处理mysql和GET、POST的数据时,常常要对数据的引号进行转义操作。 PHP中有三个设置可以实现自动对’(单引号),”(双引号),\(反斜线)和 NULL 字符转转。 PHP称之为魔术引号,这三项设置分别是 magic_quotes_gpc 影响到 HTTP 请求数据(GET,POST 和 COOKIE)。不能在运行时改变。在 PHP 中默认值为 on。 这个开启时,通过GET,POST,COOKIE传递的数据会自动被转义。 如 test.php?id=abc'de"f echo $_GET['id']; # 会得到 abc\'de\"f magic_quotes_gpc=On; 这个开启了,对写入数据库是没有影响的,比如 上面的$_GET['id'] 写到数据库里面,依然是 abc'de"f , 相反,如果magic_quotes_gpc=Off; 那么字符中要带有引号(不管单引号还是双引号) ,直接写入mysql都会直接变成空白 但是,如果你将它写入文档,而非mysql。那么它将是 abc\'de\"f magic_quotes_runtime 如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。 magic_quotes_sybase 如果打开的话

how to prevent database to add slash to quotes

蹲街弑〆低调 提交于 2019-11-30 07:26:31
i know this sounds really common and so trivial but , am having a challenge here. I have a web site with Zend/Doctrine and i use ckeditor for the backend management. after uploading the site i've realized that during edit testing the look and feel of the site is messed up. with the help of firebug, i've seen that there are slashes all over the html. after inline edition, the look and feel came back to normal. There are so many files , i can't think of doing other decoding before outputting data from mysql. What options do i have to solve this problem. the site is up already and i feel a bit

xss,csrf,SQL注入

扶醉桌前 提交于 2019-11-29 11:54:08
一、Xss 1、定义:跨站脚步攻击,过滤用户表单提交的数据 2、防范措施: a.使用PHP内置函数:htmlspecialchars(),strip_tags,trim,addslashes。 b.PHP所有打印的语句如echo,print等,在打印前都要使用htmlentities() 进行过滤, 这样可以防止Xss,注意中文要写htmlentities($name,ENT_NOQUOTES,GB2312) c.php防注入和XSS攻击通用过滤函数 <?php //php防注入和XSS攻击通用过滤. //by qq:831937 $_GET && SafeFilter($_GET); $_POST && SafeFilter($_POST); $_COOKIE && SafeFilter($_COOKIE); function SafeFilter (&$arr) { $ra=Array('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','/script/','/javascript/','/vbscript/','/expression/','/applet/','/meta/','/xml/','/blink/','/link/','/style/','/embed/','/object/','/frame/','/layer/','/title/'