gpt4 book ai didi

java - 命名参数查询如何阻止 SQL 注入(inject)

转载 作者:行者123 更新时间:2023-11-30 11:02:33 24 4
gpt4 key购买 nike

我在 How to prevent SQL Injection in hibernate? 看到了 HQL SQL 注入(inject)主题.但我不明白 Query.setParameter("<parameter name>",<parameter value>) 是怎么做到的

消除SQL注入(inject),如果恶意用户通过 true = true到以下 HQL,String hqlString = "from Item item where name= '"+nameValue+"'";

然后他可以将它传递给query.setString("name"+ nameValue)还!setString() 及其所有姊妹方法是否有任何过滤器来检查 SQL 注入(inject)?

最佳答案

JDBC 或 Hibernate 驱动程序将在执行查询之前适本地转义此数据;确保数据仅作为数据使用。

在执行查询之前,驱动程序会转义如下字符:

  1. ;(查询分隔符。)
  2. '(字符数据字符串分隔符。)
  3. --(注释分隔符。)

关于java - 命名参数查询如何阻止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30727579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com