java mysql 字符串 转义读取_用Java转义SQL字符串

背景:

我目前正在为企业CMS数据库(业务对象)开发Java前端。目前,我正在构建一个功能,以允许用户构建自定义数据库查询。我已经实施了一些措施,以确保用户只能使用已批准用于用户访问的可用列和运算符的子集进行选择(例如,可以选择SI_EMAIL_ADDRESS,而不能选择更强大的字段,如SI_CUID)。到目前为止,事情一直在进行,但是现在是时候保护此功能免受潜在的SQL注入攻击。

问题:

我正在寻找一种方法来转义用户输入的字符串。我已经看过PerparedStatement,但是我被迫使用第三方API来访问数据库。这些API对我来说是一成不变的,直接访问数据库是不可能的。各个方法采用表示要运行的查询的字符串,从而使PreparedStatement无效(据我所知,必须针对直接数据库连接运行)。

我已经考虑过使用String.replace(),但是如果可能的话,我不想重新发明轮子。此外,我与开发PerparedStatement的安全专家相去甚远。

我还查看了PerparedStatement的Java API参考,希望找到某种toString()方法。las,我一直找不到类似的东西。

任何帮助是极大的赞赏。先感谢您。

背景: 我目前正在为企业CMS数据库(业务对象)开发Java前端。目前,我正在构建一个功能,以允许用户构建自定义数据库查询。我已经实施了一些措施,以确保用户只能使用已批准用于用户访问的可用列和运算符的子集进行选择(例如,可以选择SI_EMAIL_ADDRESS,而不能选择更强大的字段,如SI_CUID)。到目前为止,事情一直在进行,但是现在是时候保护此功能免受潜在的SQL注入攻击。 问题: 我正在寻找一种方法来转义用户输入的字符串。我已经看过PerparedStatement,但是我被迫使用第三方API来访问数据库。这些API对我来说是一成不变的,直接访问数据库是不可能的。各个方法采用表示要运行的查询的字符串,从而使PreparedStatement无效(据我所知,必须针对直接数据库连接运行)。 我已经考虑过使用String.replace(),但是如果可能的话,我不想重新发明轮子。此外,我与开发PerparedStatement的安全专家相去甚远。 我还查看了PerparedStatement的Java API参考,希望找到某种toString()方法。las,我一直找不到类似的东西。 任何帮助是极大的赞赏。先感谢您。
经验分享 程序员 微信小程序 职场和发展