php的addslashes,PHP的addslashes函数的作用

本文目录一览:

php stripslashes和addslashes的区别

就函数名称来说他们的区别:stripslashes(剥离斜线)addslashes(添加斜线)

stripslashes(string $str)简单说就是剥离或转化$str字串中的斜线,官方的话说就是反引用一个引用字串。一个简单的例子:echo stripslashes(“Is your name O\’reilly?”);//Is your name O’reilly?

addslashes(string $str)相反,就是添加斜线,官方的说法就是使用反斜线引用字符串。一个简单的例子:echo addslashes(“Is your name O’reilly?”);//Is your name O\’reilly?

使用场景:其实这两个函数主要使用在一些需要转化特殊字符的数据处理中,比如数据库操作,在写入数据库的时候,我们需要把单引号这样的特殊字符转义之后保存,而在读取的时候,我们又需要把数据库中的这些被转义的特殊字符反转义回来。

他们具体的用法及注意的地方可以参看PHP文档

addslashes用途与php怎样防止mysql注入

php中addslashes函数与sql防注入。具体分析如下:

addslashes可会自动给单引号,双引号增加\\\\\\,这样我们就可以安全的把数据存入数据库中而不黑客利用,参数’a..z’界定所有大小写字母均被转义,代码如下:

复制代码 代码如下:

echo addcslashes(‘foo[ ]’,’a..z’); //输出:foo[ ]

$str=”is your name o’reilly?”; //定义字符串,其中包括需要转义的字符

echo addslashes($str); //输出经过转义的字符串

定义和用法:addslashes() 函数在指定的预定义字符前添加反斜杠.

这些预定义字符是:单引号 (‘),双引号 (“),反斜杠 (),null

语法:addslashes(string),当然这个函数更安全,实例代码如下:

复制代码 代码如下:

$str=”a href=’test’test/a”; //定义包含特殊字符的字符串

$new=htmlspecialchars($str,ent_quotes); //进行转换操作

echo $new; //输出转换结果

//不过输出时要用到

$str=”jane ‘tarzan'”; //定义html字符串

echo html_entity_decode($str); //输出转换后的内容

echo “br/”;

echo html_entity_decode($str,ent_quotes); //有可选参数输出的内容

解析php addslashes与addclashes函数的区别和比较

PHP addcslashes() 函数

定义和用法

addcslashes() 函数在指定的字符前添加反斜杠。

语法

addcslashes(string,characters)参数 描述

string 必需。规定要检查的字符串。

characters 可选。规定受 addcslashes() 影响的字符或字符范围。

提示和注释

注释:在对 0,r,n 和 t 应用 addcslashes() 时要小心。在 PHP 中,\0,\r,\n 和 \t 是预定义的转义序列。

实例

例子 1

在本例中,我们要向字符串中的特定字符添加反斜杠:

?php

$str = “Hello, my name is John Adams.”;

echo $str;

echo addcslashes($str,’m’);

echo addcslashes($str,’J’);

?

/*

   输出:

    Hello, my name is John Adams.

    Hello, \my na\me is John Ada\ms.

    Hello, my name is \John Adams.

*/

PHP addslashes() 函数

定义和用法

addslashes() 函数在指定的预定义字符前添加反斜杠。

这些预定义字符是:

•单引号 (‘)

•双引号 (“)

•反斜杠 (\)

•NULL

语法

addslashes(string)参数 描述

string 必需。规定要检查的字符串。

提示和注释

提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串。

注释:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

例子

在本例中,我们要向字符串中的预定义字符添加反斜杠:

?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.他们都有对应的去除他们添加的反斜杠的方法,分别是:stripcslashes()和stripslashes()。

*/

php addslashes 后怎么还原

php 语言里,对于反斜杠的处理有 addslashes() 和 stripslashes(),两者的作用正好相反:

addslashes():对输入字符串中的某些预定义字符前添加反斜杠,这样处理是为了数据库查询语句等的需要。这些预定义字符是:单引号 (‘) ,双引号 (“) ,反斜杠 (\) ,NULL。

stripslashes():删除由 addslashes() 函数添加的反斜杠。该函数用于清理从数据库或 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中使用addslashes函数转义的安全性原理分析

本文实例讲述了PHP中使用addslashes函数转义的安全性原理分析。分享给大家供大家参考。具体分析如下:

先来看一下ECshop中addslashes_deep的原型

复制代码

代码如下:function

addslashes_deep($value)

{

if

(empty($value))

{

return

$value;

//如为空,直接返回;

}

else

{

return

is_array($value)

?

array_map(‘addslashes_deep’,

$value):

addslashes($value);

}

//递归处理数组,直至遍历所有数组元素;

}

addslashes_deep函数本身没有问题,但使用时得注意一点

恰好今天也是在网上看到了有人发了关于使用这个函数使用的BUG注入漏洞

这个函数在引用回调函数addslashes时,只对数据的值进行转义,所以如果使用者在此过程中引用数组的键进行特定处理时,存在$key注入风险,此时可更改addslashes_deep函数,使其同时对键值进行转义,或者使用时明确不引用键内容。

希望本文所述对大家的PHP程序设计有所帮助。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/156828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-18 01:58
下一篇 2024-11-18 01:58

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Python中capitalize函数的使用

    在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • 单片机打印函数

    单片机打印是指通过串口或并口将一些数据打印到终端设备上。在单片机应用中,打印非常重要。正确的打印数据可以让我们知道单片机运行的状态,方便我们进行调试;错误的打印数据可以帮助我们快速…

    编程 2025-04-29
  • 三角函数用英语怎么说

    三角函数,即三角比函数,是指在一个锐角三角形中某一角的对边、邻边之比。在数学中,三角函数包括正弦、余弦、正切等,它们在数学、物理、工程和计算机等领域都得到了广泛的应用。 一、正弦函…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • Python实现计算阶乘的函数

    本文将介绍如何使用Python定义函数fact(n),计算n的阶乘。 一、什么是阶乘 阶乘指从1乘到指定数之间所有整数的乘积。如:5! = 5 * 4 * 3 * 2 * 1 = …

    编程 2025-04-29
  • Python定义函数判断奇偶数

    本文将从多个方面详细阐述Python定义函数判断奇偶数的方法,并提供完整的代码示例。 一、初步了解Python函数 在介绍Python如何定义函数判断奇偶数之前,我们先来了解一下P…

    编程 2025-04-29

发表回复

登录后才能评论