草庐IT

Escaping

全部标签

Mysqldump -x 转义 XML 字符的选项

我正在使用mysqldump-x将MySQL数据库导出为XML。我的许多字段包含撇号和其他混淆mysqldump-x-restore的字符的XSLT样式表。仅仅遍历文件并转义XML有问题的字符是不够的,因为这会替换所有合法的XML括号和引号。mysqldump上是否有一个选项可以对列数据进行XML转义? 最佳答案 如果只有少数特殊字符导致麻烦,您可以使用执行(-e)选项结合常规mysql客户端中的REPLACE函数获得与mysqldump-x相同的结果。转义与号字符的示例:mysql--xml-uusername-p-Ddataba

php - 没有连接的多字节的mysql_real_escape_string?

让我们考虑一下我将永远做一个SETNAMES'utf8'到mysql连接(所以我需要多字节转义)。是否有不需要mysql连接的mysql_real_escape_string的安全替代方案?在官方页面我发现了一个comment像这样使用str_replace:if(!empty($inp)&&is_string($inp)){returnstr_replace(array('\\',"\0","\n","\r","'",'"',"\x1a"),array('\\\\','\\0','\\n','\\r',"\\'",'\\"','\\Z'),$inp);}够了吗?如果mysql_rea

php - mysql_real_escape_string 和单引号

我很沮丧。我希望能够将带有单引号的名称插入到我的数据库中-例如,O'Connor。因此,当插入数据库时​​,我会:$lname=mysql_real_escape_string($_POST['lname']);然后我将$lname插入到数据库中。当它在数据库中时,它显示为O\'Connor。因此,如果我要在我的网络应用程序中记忆起那个姓氏,我将不得不使用:$lname=stripslashes($r["lname"]);这一切似乎工作正常。但是,我有一个搜索功能,可以搜索姓氏并显示结果。当我搜索时,我必须搜索O\'Connor才能获得任何结果。你看,在我搜索之后,文本框会自动存储刚刚

php - 转义数据的最佳方式 JS->PHP->MySQL,反之亦然

为了以下目的,我必须使用什么函数来编码/解码/转义/去除斜杠数据?从JS调用PHP脚本时,例如:page.php?data=don't_use_#_and_%_in_URL_params当PHP脚本从JS接收参数时:don%27t_use_%23_and_%25_in_URL_params当使用先前从JS收到的数据从PHP运行MySQL查询以防止MySQL注入(inject)时(假设我需要在数据库中插入以下字符序列:"``')当我需要在MySQL语句中比较包含"``'序列和表达式的字段值时当我需要从MySQL表中检索字段值并且该字段包含"``'并且我想在PHPeval()宏替换中使用它

escaping - 指定mysqldump在sql文件中插入的转义字符

我希望能够控制和指定mysqldump用于数据导出的转义字符。我想使用双反斜杠\\或''而不是\除了似乎用于制表符分隔导出的--fields-escaped-by=char之外,我找不到任何相关选项。有人可以帮忙吗? 最佳答案 我刚遇到同样的问题。有一个openbug在MySQL的错误跟踪器中对此进行了讨论(这很神奇,因为它是如此基本的东西)。我的快速修复是通过sed将mysqldump传输到管道:[yourmysqldumpcommand]|sed"s/\\\'/''/g">dumpfile.sql

php - 带有包含未转义通配符 '%'(百分比)或 '_'(下划线)的转义字符串的 mysql LIKE 语句是否易受攻击?

假设我们有以下代码(用于某种搜索或类似搜索):$stmt=$pdo->prepare("SELECT*FROMusersWHEREusernameLIKE?");$stmt->execute(array('%'.$username.'%'));提供的用户名已正确转义,但字符%(=0个或更多任意字符)和_(=恰好1个任意字符)被解释为通配符通过MySQL。我知道用户可以输入%或_进行搜索,如果我希望搜索功能正常工作,我应该转义它。(在像set_pt这样的情况下,在结果中得到setopt)。但我的问题是:有人可以利用它吗?如果是,有人如何利用它以及如何防止它?下面的函数是否足够?funct

sql - 为什么这个正确转义的 SQL 查询会失败?

这是查询:INSERTINTOjobemails(jobid,to,subject,message,headers,datesent)VALUES('340','jrhodes@jhu.edu','We\'vereceivedyourrequestforaphotoshootcalled\'another\'.','message','headers','2010-04-2215:55:06')数据类型都是正确的,它总是在主题上失败,所以我想这一定是我转义值的方式。我相信你们中的一个人会马上看出我的愚蠢错误。有一点帮助吗? 最佳答案

php - mysql_real_escape_string 只转义一种类型的引号

我的服务器运行的是PHP5.2.17,我已经使用php.ini文件禁用了魔术引号。我有一个字符串数组,有些像abcd"efg"hij'klmnop'q我使用以下代码转义它们以插入到mysql数据库中foreach($arrayas&$data){mysql_real_escape_string($data);}然后我像这样构造我的sql$sql='INSERTINTOtableVALUES('.'"'.$array[0].'",'.'"'.$array[1].'",'.'"'.$array[2].'")';当我尝试执行查询时出现错误。我在遇到错误时输出$sql变量,似乎mysql_re

MySQL Escape查询结果中的双引号

我有一个关于引号的连接问题。在我的数据库中,我有单引号和双引号文本,然后我用CONCAT构建了一个JSON字符串,CONCAT('{"',a,'":"',b,'"}')假设我们有以下数据:abPhraseMonica'smirrorPhraseJoe"Hammer"SmithPhraseOo-la-laaa连接将是{"Phrase":"Monica'smirror"}{"Phrase":"Joe"Hammer"Smith"}{"Phrase":"Oo-la-laaa"}如您所见,'Joes"Hammer"Smith'将创建一个无效的json字符串。问题SQL中是否有转义引号的方法(在C

mysql - 为什么 Perl DBI 转义从 MySQL 检索的值?

我在MySQL中有一个包含撇号(’)和省略号(...)的值:$/bin/echo"selectaliasfromurl_aliaswheresource='node/12024'"|\mysql--skip-column-names-Dcat36ia_d7prod输出:forum/technical-discussion/nagging-questions-i’ve-been-too-embarrassed-ask…当我使用PerlDBI和DBD::mysql检索值时,值已更改:$perl-MDBI-MDBD::mysql-e'$dbh=DBI->connect("DBI:mysql: