addslashes

PHP 转义与反转义函数

一笑奈何 提交于 2019-12-24 00:48:00
php向mysql数据库插入数据进行转义包括两方面的操作,第一方面需要在添加数据时通过数据转义将数据写入库中,第二方面在将数据显示在页面时需要再次将数据恢复为原始状态,即反转义。 一、数据转义 1 mysql_escape_string($content) 二、反转义 1 stripslashes($content) 以上两行代码即可实现php向mysql数据库插入数据转义操作。 get_magic_quotes_gpc() 在PHP中get_magic_quotes_gpc()函数是内置的函数,这个函数的作用就是得到php.ini设置中magic_quotes_gpc选项的值。 那么就先说一下magic_quotes_gpc选项: 如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。 在magic_quotes_gpc=On的情况下,如果输入的数据有 单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)等字符都会被加上反斜线。这些转义是必须的,如果这个选项为off,那么我们就必须调用addslashes这个函数来为字符串增加转义。 正是因为这个选项必须为On,但是又让用户进行配置的矛盾

set_magic_quotes_runtime()和get_magic_quotes_runtime()

假装没事ソ 提交于 2019-12-24 00:47:39
set_magic_quotes_runtime()和get_magic_quotes_runtime() 是针对数据库 get_magic_quotes_gpc() 是针对GPC, Get/Post/Cookie 来自http://www.5iphp.com/zh-hans/content/325.html 来自http://hi.baidu.com/samyucn/blog/item/df14cb3590a03c46251f14da.html 1、PHP中set_magic_quotes_runtime()函数的作用: 此函数来修改PHP.ini文件中的 magic_quotes_runtime 变量的状态,如果想获得magic_quotes_runtime 变量的状态用get_magic_quotes_runtime这个函数如果返回0表示本功能被关闭,如果返回1表示本功能已经开启。 magic_quotes_runtime的功能是当它被开启的时候所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。比如: 用户向数据库提交的数据中含有\" '这些符号的时候它就会在这些符号的前面自动加上"\"转义符。 这个属性在PHP4以前的版本都是默认关闭的,PHP4.0以后的版本如果程序要用到将它关闭的时候直接写成set_magic_quotes_runtime(0

magic_quotes_gpc和magic_quotes_runtime的区别和用法详解

▼魔方 西西 提交于 2019-12-24 00:47:23
当你的数据中有一些 " ' 这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前 自动 加上,如 中国地大物博"哈哈" 中国\地大物博"哈哈" 可以使用 set_maginc_quotes_runtime(0) 关闭掉,当然你也可以直接在php.ini中设置。 get_magic_quotes_runtime() 取得 PHP 环境变量 magic_quotes_runtime 的值。 magic_quotes_gpc 为 on,它主要是对所有的 GET 、 POST 和 COOKIE 数据自动运行 addslashes() 。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。 两者不同 set_magic_quotes_runtime() 可以让程序员在代码中动态开启或关闭 magic_quotes_runtime , set_magic_quotes_runtime(1) 表示开启, set_magic_quotes_runtime(0) 则表示关闭。当 set_magic_quotes_runtime(1) 时,从数据库或通过fread之类的函数读取的文本,将自动对 ’ “ 和自动加上反斜杠进行转义



set_magic_quotes_runtime()和get_magic_quotes_gpc()

喜欢而已 提交于 2019-12-24 00:47:07
1、PHP中set_magic_quotes_runtime()函数的作用: 此函数来修改PHP.ini文件中的 magic_quotes_runtime 变量的状态,如果想获得magic_quotes_runtime 变量的状态用get_magic_quotes_runtime这个函数如果返回0表示本功能被关闭,如果返回1表示本功能已经开启。 magic_quotes_runtime的功能是当它被开启的时候所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。比如: 用户向数据库提交的数据中含有\" '这些符号的时候它就会在这些符号的前面自动加上"\"转义符。 这个属性在PHP4以前的版本都是默认关闭的,PHP4.0以后的版本如果程序要用到将它关闭的时候直接写成set_magic_quotes_runtime(0)将其关闭。 2.get_magic_quotes_gpc函数作用: 此函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示关闭本功能;返回 1 表示本功能打开。当 magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动加上转义符\; 默认情况下,PHP 指令 magic_quotes_gpc 为 on

Golang中实现PHP的Addslashes和Stripslashes

人盡茶涼 提交于 2019-12-16 16:11:44
package main // addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。 // 预定义字符是: // 单引号(') // 双引号(") // 反斜杠(\) func Addslashes(str string) string { tmpRune := []rune{} strRune := []rune(str) for _, ch := range strRune { switch ch { case []rune{'\\'}[0], []rune{'"'}[0], []rune{'\''}[0]: tmpRune = append(tmpRune, []rune{'\\'}[0]) tmpRune = append(tmpRune, ch) default: tmpRune = append(tmpRune, ch) } } return string(tmpRune) } // stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。 func Stripslashes(str string) string { dstRune := []rune{} strRune := []rune(str) strLenth := len(strRune) for i := 0; i < strLenth; i++ { if

Search returns no rows in mysql query using LIKE and values having “\”

徘徊边缘 提交于 2019-12-13 05:14:05
问题 I have some problem regarding the search in mysql. Below is my query. SELECT * FROM table WHERE name LIKE "%admin\'s%"; When i am executing this query it will return zero data. actually i have "admin\'s" stored in db. this "\" is to prevent sql injection. i have used mysql_real_escape_string to prevent the sql injection. but when i use three times addslashes to my variable it works. So my below query is working. SELECT * FROM table WHERE name LIKE "%admin\\\\\\\'s%"; My above query will

Adding single quote into mysql results with \'s sometimes but not always

情到浓时终转凉″ 提交于 2019-12-11 19:33:17
问题 Initially when i try to add a string that have Single quotations the database used to return an error message.. So i added addslashes to that string before the query. After adding the addslashes, the String looks like this in DataBase. For some reason the backslashes are not always inserted. Please suggest me a method for handling quotes after going through this scenario Case1: Using Addslashes I already have a huge code, where if i use addslashes before insertion, i must also use

How do I escape characters in href of anchor tag

允我心安 提交于 2019-12-08 09:58:43
问题 I want to escape three characters these are single quote (') double quote (") backslash () my href value is test.html?key="test' me'"&event=3 I want to fix it as we do in php by calling addslashes function <a href="test.html?key="test' me'"&event=3">test</a> NOTE: I need a dynamic way of doing it 回答1: The PHP function to take data and generate a properly encoded query string is http_build_query . You can then put it in a URL and then encode that using htmlspecialchars to insert it in a

织梦CMS上传漏洞修复

一笑奈何 提交于 2019-12-06 18:19:06
近段时间老是发现网站title被注入其他信息,应该是被植入***还是什么的,非常困闹,在网站找了一些织梦漏洞的修补方法。 任意文件上传漏洞修复 一、/include/dialog/select_soft_post.php文件,搜索(大概在72行的样子) $fullfilename = $cfg_basedir.$activepath.'/'.$filename; 修改为 if (preg_match('#\.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) { ShowMsg("你指定的文件名被系统禁止!",'javascript:;'); exit(); } $fullfilename = $cfg_basedir.$activepath.'/'.$filename;;   二、后台文件任意上传漏洞 /dede/media_add.php或者/你的后台名字/media_add.php    搜索$fullfilename = $cfg_basedir.$filename;(大概在69行左右) 替换成 if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0

php 防注入的一些总结

心不动则不痛 提交于 2019-12-05 22:02:35
一、几个与特殊字符处理有关的PHP函数 函数名 释义 介绍 htmlspecialchars 将与、单双引号、大于和小于号化成HTML格式 &转成& "转成" ' 转成' <转成< >转成> htmlentities() 所有字符都转成HTML格式 除上面htmlspecialchars字符外,还包括双字节字符显示成编码等。 addslashes 单双引号、反斜线及NULL加上反斜线转义 被改的字符包括单引号 (')、双引号 (")、反斜线 backslash (\) 以及空字符NULL。 stripslashes 去掉反斜线字符 去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。 quotemeta 加入引用符号 将字符串中含有 . \\ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜线 "\" 符号。 nl2br() 将换行字符转成<br> strip_tags 去掉HTML及PHP标记 去掉字符串中任何 HTML标记和PHP标记,包括标记封堵之间的内容。注意如果字符串HTML及PHP标签存在错误,也会返回错误。 mysql_real_escape_string 转义SQL字符串中的特殊字符 转义 \x00 \n \r 空格 \ ' " \x1a,针对多字节字符处理很有效。mysql_real_escape