php addslashes函数(php中addslashes()函数的用途)

本文目录
- php中addslashes()函数的用途
- php 的 json 格式 数据 怎么去除 双引号
- php中防止SQL注入,该如何解决
- php正则表达式 向mysql 插入单引号问题
- php 有什么方法可以防止执行php代码或html
php中addslashes()函数的用途
addslashes
--
使用反斜线引用字符串
string
addslashes
(
string
str
)
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(")、反斜线(\)与
NUL(NULL
字符)。
一个使用
addslashes()
的例子是当你要往数据库中输入数据时。例如,将名字
O’reilly
插入到数据库中,这就需要对其进行转义。大多数据库使用
\
作为转义符:O\’reilly。这样可以将数据放入数据库中,而不会插入额外的
\。当
PHP
指令
magic_quotes_sybase
被设置成
on
时,意味着插入
’
时将使用
’
进行转义。
默认情况下,PHP
指令
magic_quotes_gpc
为
on,它主要是对所有的
GET、POST
和
COOKIE
数据自动运行
addslashes()。不要对已经被
magic_quotes_gpc
转义过的字符串使用
addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数
get_magic_quotes_gpc()
进行检测。
php 的 json 格式 数据 怎么去除 双引号
可以使用PHP addslashes() 函数转义一下
addslashes() 函数在指定的预定义字符前添加反斜杠。
这些预定义字符是:
单引号 (’)
双引号 (")
反斜杠 (\)
NULL
例如:
《?php
$str = "Who’s John Adams?";
echo $str . " This is not safe in a database query.《br /》";
echo addslashes($str) . " 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.
php中防止SQL注入,该如何解决
防sql注入的一个简单方法就是使用框架,一般成熟框架中会集成各种安全措施。
当然也可以自己处理,如果用户的输入能直接插入到SQL语句中,那么这个应用就易收到SQL注入的攻击。我认为最重要的一点,就是要对数据类型进行检查和转义。
php.ini
------------
display_errors 选项,应该设为 display_errors = off。这样 php 脚本出错之后,不会在 web 页面输出错误,以免让攻击者分析出有作的信息。
打开magic_quotes_gpc来防止SQL注入,magic_quotes_gpc= Off,这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ’ 转为 \’等,对于防止sql注射有重大作用。如果magic_quotes_gpc=Off,则使用addslashes()函数。
mysql 函数
---------------
调用mysql_query 等mysql 函数时,前面应该加上 @,即 @mysql_query(...),这样 mysql 错误不会被输出。同理以免让攻击者分析出有用的信息。另外,有些程序员在做开发时,当mysql_query出错时,习惯输出错误以及sql 语句。
mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集。
Sql语句
------------
对提交的 sql 语句,进行转义和类型检查。如果请求是数值型,那么调用is_numeric() 判断是否为数值。如果不是,则返回程序指定的默认值。简单起见,对于文本串,我将用户输入的所有危险字符(包括HTML代码),全部转义。由于php 函数 addslashes()存在漏洞,我用str_replace()直接替换。get_magic_quotes_gpc()函数是php 的函数,用来判断magic_quotes_gpc 选项是否打开。
其它
---------
使用预处理语句和参数化查询(PDO或mysqli)。预处理语句和参数分别发送到数据库服务器进行解析,参数将会被当作普通字符处理。这种方式使得攻击者无法注入恶意的SQL。
php正则表达式 向mysql 插入单引号问题
不用正则过滤,入库前用addslashes -- 添加反斜线引用字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。如:单引号(’)、双引号(")、反斜线(\)与 NUL(NULL 字符)。
代码:
if (!get_magic_quotes_gpc()){
$str=addslashes($str);
}
处理过的$str就可以安全入库了。再不会出现插入时导致sql语句错误。
php 有什么方法可以防止执行php代码或html
对于留言的内容,输入php代码是不会执行的。
插入数据库时用 addslashes($str)函数来添加引用,以正确地插入数据库。
显示时用htmlspecialchars($str)函数将HTML代码或脚本代码转换成HTML字符,防止其被浏览器解释并执行。

更多文章:
blast premier春季赛(csgo战队vitality有谁)
2026年9月7日 21:50
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00





