当前位置: 首页 > 面试题库 >

如何为SQL查询转义字符串(没有准备好的语句)

刘俊语
2023-03-14
问题内容

我知道准备好的语句的功能,但是我不能在这里使用它。我通过HTTP(而不是通过JDBC)将sql查询发送到外部服务器。如何对SQL查询进行转义字符串?有没有办法通过JDBC做到这一点?还是我应该为此使用自定义类/函数

ps另外,我已经连接到其他数据库,因此可以使用JDBC函数。


问题答案:

这听起来很不安全。如果要通过HTTP发送SQL语句,则可能会受到中间人攻击(以及其他攻击)的危害。除此之外,如果任何普通级别的程序员看到您正在发送SQL语句,他们都可以尝试对您的数据库执行恶意SQL。他们可以创建用户,更改密码,检索敏感数据…您确定这是处理问题的最佳方法吗?



 类似资料:
  • 我正在寻找一种用Java转义MySQL查询的字符串的方法。 但等一下,在你们中的一些人直接下结论说“事先准备好的声明”之前,我想再解释一下。

  • 问题内容: 在准备好的语句上调用PDOStatement :: execute()时,有没有办法使原始SQL字符串执行?对于调试目的,这将非常有用。 问题答案: 我假设您的意思是您想要最终的SQL查询,并将参数值插入其中。我知道这对调试很有用,但是它不是准备好的语句的工作方式。参数不会在客户端与预准备的语句组合,因此PDO绝对不能访问与其参数组合的查询字符串。 当您执行prepare()时,SQL

  • 问题内容: 我不敢相信我在问这个,但是… 您如何使用SCALA在SPARK SQL中逃逸SQL查询字符串? 我已经厌倦了一切,到处搜寻。我以为apache commons库可以做到,但是没有运气: ”‘“).map(_.getValuesMapAny)).collect().foreach(println); 返回以下内容: topic =’‘’Ulmus_minor _’‘Toledo’‘’^在

  • 我不敢相信我问这个但是... 如何使用Scala在SPARK SQL中转义SQL查询字符串? 我累了所有的东西,到处找。我以为apache commons库可以做到这一点,但运气不好: 返回以下内容: 帮个忙就好了。 j

  • 问题内容: 我想创建一个JDBC PreparedStatement,例如: 其中第一个是文字,第二个是参数。我可以代替,但我认为额外的函数调用会减慢SQL的执行速度。有什么办法可以逃脱第一个? 编辑: 以下代码测试dkatzel的断言:字符串中的字符不被视为标记: 输出: 看来dkatzel是正确的。我搜索了JDBC Spec ,但没有发现 参数标记如果在引号内将被忽略,但是我发现的Prepar

  • 问题内容: 我正在尝试运行以下查询,该查询使用某人的名字并将其插入到SQL Server数据库表中。 我面临的问题是单引号导致我的查询出现问题。查询被执行为 这会导致SQL语法错误。 我的问题是如何转义$ name变量,使其在SQL端呈现。 一种解决方案是对我的$ name变量进行查找和替换,查找:’replace:” 有没有更优雅的解决方案,或者我似乎找不到的功能? 谢谢你。 问题答案: 您可以