类型: | enum |
默认: | safe_encoding |
上下文: | user |
重新开始: | false |
值: | [safe_encoding, on, off] |
这个参数控制字符串文本中的单引号是否能够用\'
来表示。首选的 SQL 标准的方法是将其双写(''
),但是PostgreSQL在历史上也接受\'
。不过使用\'
容易导致安全风险,因为在某些客户端字符集编码中,有多字节字符的最后一个字节在数值上等价于 ASCII 的\'
。如果客户端代码没有做到正确转义,那么将会导致 SQL 注入攻击。如果服务器拒绝看起来带有被反斜线转义的单引号的查询,那么就可以避免这种风险。backslash_quote
的可用值是on
(总是允许\'
)、off
(总是拒绝)以及safe_encoding
(只有客户端编码不允许在多字节字符中存在 ASCII \
时允许)。safe_encoding
是默认设置。
注意在符合标准的字符串文本中,\
就表示\
。这个参数只影响不符合标准的文本的处理,包括转义字符串语法(E'...'
)。
建议 [EN]
If you have cleaned up your application code, you can set this to 'off' to help lock down the database. Older PHP applications will require the insecure setting of 'on'.