我刚刚读过this question当我想知道我应该构建多复杂的查询时。
到目前为止,我只是使用 StringBuilder 构建了一个字符串,因为在这个应用程序中只使用了select、update、insert和delete。现在我也想知道正确的转义,当我问自己时,为什么转义不仅仅是将那些符号'
转义到这个\'
。
转义背后是否有更复杂的行为或者这是否完整?
感谢您的意见!
最佳答案
字符串构建的 SQL 是一个坏主意,因为它使您容易受到 SQL 注入(inject)攻击。
如果您可以将查询放入存储过程并参数化您的输入值。
有关 SQL 注入(inject)攻击以及如何预防这些攻击的信息,请参阅开放 Web 应用程序安全项目网站:
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
关于java - SQL转义遵循什么规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9938488/