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

Hibernate Criteria Api是否可以完全防止SQL注入

逄烨
2023-03-14
问题内容

我正在与Hibernate合作保护我的网站免受SQL Injection。

我听说Hibernate Criteria API比HQL更强大。Hibernate Criteria Api是否可以完全防止SQL注入?


问题答案:

是的,它确实。

Criteria API以及HQL或JPQL中的查询参数均会转义参数,并且不会执行恶意SQL。

仅在您将参数简单地串联到查询中时,才会暴露此漏洞。然后,所有恶意SQL都将成为查询的一部分。

编辑 OWASP具有一个
防止SQL注入的速查表

。使用条件查询等同于防御选项1:使用准备好的语句。



 类似资料:
  • 问题内容: 在http://www.justinshattuck.com/2007/01/18/mysql-injection-cheat- sheet/?akst_action=share- this上 ,有一节声称您可以使用某些亚洲字符编码绕过mysql_real_escape_string 用BIG5或GBK绕过mysql_real_escape_string() “注入线” に关する追加情

  • 问题内容: 假设我有这样的代码: PDO文档说: 准备好的语句的参数不需要用引号引起来。司机为您处理。 那真的是我避免SQL注入所需要做的一切吗? 真的那么容易吗? 您可以假设MySQL会有所作为。另外,我真的只是对针对SQL注入使用准备好的语句感到好奇。在这种情况下,我不在乎XSS或其他可能的漏洞。 问题答案: 简短的回答是“ 否” ,PDO准备将不会为您防御所有可能的SQL注入攻击。对于某些晦

  • 所谓 SQL 注入,就是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令。具体来说,它是利用现有应用程序,将(恶意)的 SQL 命令注入到后台数据库引擎执行的能力,它可以通过在 Web 表单中输入(恶意)SQL 语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行 SQL 语句。比如先前的很多影视网站泄露 VI

  • 我正在处理的目标系统不支持PDO ist,尽管我在Postgres-DB8.2+上使用PHP 5.1.x寻求防止SQL注入的解决方案。目前没有机会切换到PDO。 我目前的解决方案是pg_prepare-prepared语句: 该函数从查询字符串创建一个名为stmtname的准备好的语句,该语句必须包含单个SQL命令。stmtname可以是“”来创建未命名语句,在这种情况下,任何先前存在的未命名语句

  • 问题内容: 今天早些时候,有人问了有关Web应用程序中输入验证策略的问题。 在撰写本文时,最高答案建议仅使用和。 我的问题是:这是否总是足够?还有更多我们应该知道的吗?这些功能在哪里分解? 问题答案: 对于数据库查询,请始终尝试使用准备好的参数化查询。在和库支持这一点。这比使用转义功能(例如)更加安全。 是的,实际上只是一个字符串转义功能。这不是魔术子弹。它所要做的就是逃避危险字符,以便可以安全地

  • 问题内容: 我必须为我的OJT公司编程一个应用程序管理系统。前端将在C#中完成,后端将在SQL中完成。 现在,我从来没有做过这样的项目。在学校里,我们只有关于SQL的基本课程。不知何故,我们的老师完全没有讨论SQL注入,而我直到现在才通过网上阅读与之接触。 所以无论如何,我的问题是:如何防止C#中的SQL注入?我模糊地认为,可以通过适当地屏蔽应用程序的文本字段来做到这一点,以使其仅接受指定格式的输