java - SQL转义遵循什么规则?

标签 java sql escaping

我刚刚读过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/

相关文章:

java - Jackson将json数组反序列化为一个类的单个属性

java - 为什么 Hibernate 会为 @ManyToOne 关联的隐式连接生成 CROSS JOIN?

python - 将换行值写入 python 文件而不换行

java - 轻松生成休息服务的解决方案?

java - 如何在同一主题上使用globalKtable和StateStore?

mysql - 如何根据今天的日期获取周数

sql - 如何使用 sql case 语句重新创建此逻辑

sql - Oracle中如何将表从一个数据库复制到另一个数据库

java - 为什么 ";"和 "\\;"找到相同的结果?

html - 如何在 Rails ERB View 中转义 block 中的所有 HTML