我正在使用MySQL API的功能
mysql_real_escape_string()
根据文档,它转义以下字符:
\0
\n
\r
\
'
"
\Z
现在,我查看了OWASP.org的ESAPI安全库,并在Python端口中包含以下代码(http://code.google.com/p/owasp-
esapi-python/source/browse/esapi/codecs/mysql。
py
):
"""
Encodes a character for MySQL.
"""
lookup = {
0x00 : "\\0",
0x08 : "\\b",
0x09 : "\\t",
0x0a : "\\n",
0x0d : "\\r",
0x1a : "\\Z",
0x22 : '\\"',
0x25 : "\\%",
0x27 : "\\'",
0x5c : "\\\\",
0x5f : "\\_",
}
现在,我想知道是否真的需要转义所有这些字符。我知道为什么%和_在那里,它们在LIKE运算符中是元字符,但我不能简单地理解为什么它们添加退格和制表符(\ b
\ t)?如果执行查询,是否存在安全问题:
SELECT a FROM b WHERE c = '...user input ...';
用户输入中包含制表符或退格字符的地方?
我的问题在这里:为什么它们在ESAPI安全库中包含\ b \ t?在 任何 情况下,您可能需要转义那些字符?
该字符串MySQL手册页说:
\0
ASCII NUL(0x00)字符。\'
单引号(“ '
”)字符。\"
双引号(“ "
”)字符。\b
退格字符。\n
换行符(换行符)。\r
回车符。\t
制表符。\Z
ASCII 26(Control-Z)。请参阅表格后面的注释。\\
反斜杠(“ \
”)字符。\%
一个“ %
”字符。请参阅表格后面的注释。\_
一个“ _
”字符。请参阅表格后面的注释。问题内容: 我试图在Java中放置一些反SQL注入,并发现使用“ replaceAll”字符串函数非常困难。最后,我需要,将转换现有的功能使得当字符串由MySQL的SQL注入评估将被阻止。 我已经整理了一些正在使用的代码,并且该函数中的所有内容都使我大失所望。如果有人碰巧有这个例子,我将不胜感激。 问题答案: PreparedStatement是可行的方法,因为它们使SQL注入成为不可能。这是一个
问题内容: 我试图在Java中放置一些反SQL注入,并发现使用“ replaceAll”字符串函数非常困难。最后,我需要,将转换现有的功能来,任何到,任何到,任何以使得当字符串由MySQL的SQL注入评估将被阻止。 我已经整理了一些正在使用的代码,并且该函数中的所有内容都使我大失所望。如果有人碰巧有这个例子,我将不胜感激。 问题答案: PreparedStatement是可行的方法,因为它们使SQ
我正在寻找必须在ms sql服务器中转义的特殊字符列表,但找不到我看到的类似问题的大部分答案,建议使用参数化查询...我已经在做了,但我使用的框架不会为我做任何转义。 因此,我想我会试一试,看看哪一个失败了......我尝试了一个简单的查询 在这样的查询中,我尝试了键盘上能找到的几乎所有字符,所有字符似乎都能正常工作。。。除了单引号。。那一个失败了。 因此,我想知道ms sql server-ts
问题内容: 我在一家公司工作,该公司负责数据库模块的人员严格禁止使用准备好的语句。我担心他的实施不安全。 这是我们当前用于进行SQL查询的代码(带有JDBC / MySQL 5.5的Java 8应用程序): 我无法进行任何注射,但是他的解决方案对我来说似乎非常棘手。任何人都可以指出如何避免这种转义吗?如果我无法解决任何问题,他将不会替换他的代码,并且我们在应用程序(银行业务)中拥有成千上万客户的非
问题内容: 我厌倦了总是试图猜测,()[]{}|在使用许多正则表达式实现时是否应该转义’ ‘等特殊字符。 它与Python,sed,grep,awk,Perl,重命名,Apache,find等不同。是否有任何规则集可以告诉我何时以及何时不应该转义特殊字符?它是否取决于正则表达式类型,例如PCRE,POSIX或扩展正则表达式? 问题答案: 实际上,您必须转义哪些字符以及您必须避免转义哪些字符确实取决
只想确认Oracle SQL中需要转义哪些字符才能避免SQL注入?到目前为止,我只发现这篇文章似乎回答了我的问题:https://ss64.com/ora/syntax-escape.html.然而,正如我所听说的,amphora“@”字符也需要转义,因此,我认为上面的文章中有不完整的需要转义的字符列表。如果有人能告诉我Oracle SQL中需要转义的字符的完整列表,我将不胜感激。