草庐IT

Escaping

全部标签

php - 单引号是否在 PHP 中自动转义?那么需要清洗什么呢?

我正在阅读有关网络安全的文章,其中一个明显的主题是SQLinjections.我正在尝试设置一个基本的PHP页面,我可以在其中执行SQL注入(inject)(它是本地服务器)。但是,我的代码(或服务器)似乎自动转义了单引号。这是一个新标准还是在我的服务器上激活了一个我不知道的设置?是否需要再清理输入?这是我的服务器端代码示例:$foo=$_POST['foo'];$sql="SELECT*FROMbarWHEREfoo='".$foo."'";connectoTo("database");query($sql);其中connectTo()连接到数据库服务器并选择数据库,而query()

php - preg_split 反斜杠

在我的PHP代码中,我在字符串中分配了带有命名空间的类名,例如:$my_class_name;//="Aaa\Bbb\Ccc";//thisisnotinsourcecode,justvardump我只需要中间名,在我的例子中是“Bbb”。我试着用这个:$result_array=preg_split("/\\/",$my_class_name);但是,它不起作用。我需要在正则表达式"/\\\/"中使用三重反斜杠才能使其正常工作。我的问题是:为什么我需要其中三个?我总是通过加倍来逃避反斜杠特殊功能。 最佳答案 你想在你的正则表达式中

php - 为什么要费心使用 mysql_real_escape_string() 因为 $_POST 会自动在引号前添加斜杠?

在PHP中,$_POST会自动在引号前添加斜杠,那么为什么还要应用mysql_real_escape_string()呢?例如,当我在输入字段中输入'rrr时,当我回显它时得到\'rrr。 最佳答案 因为只有在您的php配置中启用了MacigQuotes时才会发生这种情况,据我所知,这在当今相当罕见。此外,mysql_real_escape_string还转义了其他与MySQL相关的字符。查看http://php.net/manual/en/security.magicquotes.php有关魔术引号的更多信息。正如你所看到的,这个

php - 无法从字符串中提取符号

我正在尝试在字符串中使用一些特定的符号。我需要遍历字符串的每个字符并识别符号。但是,某些符号正在转换为三个字符。需要有关如何保留符号的帮助。echo$instring=("&∨=⊢");echo"\nLengthofstring:".strlen($instring);for($i=0;$i这是工作代码。感谢h2oooooo:echo$instring=("&∨=⊢");echo"\nLengthofstring:".mb_strlen($instring,"UTF-8");for($i=0;$i 最佳答案 我认为您可以直接拆分字符

带引号的 phppass 密码不验证

当我通过表单提交带有引号的密码时"并使用:$hasher=newPasswordHash(10,FALSE);$hasher->CheckPassword($password_safe,$retrieved_password));总是失败。但是如果我将$password_safe指定为$password_safe='myPass"word';它验证正确。我如何转义$password_safe以便仍然可以完成验证? 最佳答案 我也注意到了这个问题。有两种解决方法。通过mysql_real_escape_string()传递密码字符串或

php - 如何将包含单引号和双引号的字符串作为参数传递给 PHP 中的 XSLT?

我有一个简单的基于PHP的XSLT转换代码,看起来像这样:$xsl=newXSLTProcessor();$xsl->registerPHPFunctions();$xsl->setParameter("","searchterms",$searchterms);$xsl->importStylesheet($xslDoc);echo$xsl->transformToXML($doc);代码将包含字符串的变量$searchterms作为参数传递给XSLT样式表,XSLT样式表又将其用作文本:searchfeedfor这工作正常,直到你尝试传递一个包含mixes的字符串,比如:$sear

php - 转义 Shell echo

我试着做我的研究,有很多调用shell命令的方法,还有更多的方法来去除有害字符,我正在使用stackoverflow寻求专家的最佳推荐。我希望找到像我见过的其他语言那样的东西,所以向命令发送参数实际上是通过函数传递的,例如:do_command("ls","-l",$Directory);它会为您处理$Directory变量中的任何有害内容。我还没有用PHP找到这个。这是我正在使用的代码:我知道有一个内置的PHP邮件功能几乎可以解决这个问题,但我正在运行多个SMTP服务器和msmtp是我使用的一个程序,它根据发送电子邮件的“帐户”发送电子邮件。在这种情况下,它将是“meyers”帐户。

php - 如何在php中转义字符串中的哈希符号

PHP中如何转义哈希符号?我想做"DELETEFROM[#8:1]"但要让它工作我必须做"DELETEFROM[".'#'."8:1]”。虽然它有效,但看起来有点笨拙,有没有更好的方法来做到这一点? 最佳答案 使用单引号'DELETEFROM[#8:1]' 关于php-如何在php中转义字符串中的哈希符号,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10105391/

php - 将 'utf-8' 参数添加到 htmlspecialchars() 的出现 - 它可以破坏任何东西吗?

假设我的项目自始至终都是utf-8并且一直使用utf-8编码,如果我更改所有出现的htmlspecialchars($var)是否有任何可能破坏的合法内容>到htmlspecialchars($var,ENT_QUOTES,'utf-8')?我确实知道一件事:显然,ENT_QUOTES与ENT_COMPAT的不同之处在于它也转义了单引号。假设我知道仅此一项不会破坏任何东西,还有其他东西吗?不同的措辞:htmlspecialchars()在没有charset参数的情况下,给定的数据仅来自字符集,是否有可能的结果与htmlspecialchars()不同何时使用字符集参数?(在任何时候,h

php - symfony 1.4 解释并且不显示在模板中使用 fetchOne() 的 html 标签

我有以下设置:php5.4、symfony1.4.17和firefox,即chrome。我构建了一个简单的新闻模块。表:TbNews专栏:id作为主键scontent作为保存新闻内容的文本字段。它将包含html内容,使用CKeditor保存并完美运行。如果我使用fetchOne()(在模板中),html会在写入内容之前被解释。如果我使用symfony寻呼机(在操作中,然后是模板),则不会解释html,并且我会在输出中看到包含内容的HTML标记。您可以查看下面的示例,这些示例准确地说明了我在说什么。我在其他主题中读到,出于安全原因,symfony输出转义器会自动将HTML转换为“文本”,