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

Laravel Eloquent:SQL注入预防是自动完成的吗?

东郭淇
2023-03-14
问题内容

给定示例代码( Message 是一个Eloquent模型。):

public function submit(Request $request){
    $this->validate($request, [
        'name' => "required",
        "email" => "required"
    ]);

    //database connection
    $message = new Message;
    $message->name = $request->input("name");
    $message->email = $request->input("email");

    $message->save();
}

Eloquent是否使用参数化查询(如PDO)或任何其他机制来防止SQL注入?


问题答案:

对,但是…

是的,当您依赖内置的ORM功能时,它可以防止SQL注入$someModelInstance->save()。从文档:

Laravel的数据库查询构建器为创建和运行数据库查询提供了方便,流畅的界面。它可用于在您的应用程序中执行大多数数据库操作,并可在所有受支持的数据库系统上工作。

Laravel查询构建器使用PDO参数绑定来保护您的应用程序免受SQL注入攻击。无需清除作为绑定传递的字符串。

请注意,如果您构建原始SQL语句并执行这些语句或使用原始表达式,则 不会
自动受到保护。来自文档的更多信息:

原始语句将作为字符串注入查询中,因此您应格外小心,不要创建SQL注入漏洞。

在构建原始SQL语句或表达式时,应始终使用参数化查询。有关如何在Laravel /
Eloquent中执行此操作的信息,请参见上面的最后一个链接(以及该文档的其他部分)。



 类似资料:
  • 主要内容:1.测试准备,2.注解过程1.测试准备 Cat.java Person.java 通过set加上@Autowred注解注入 MainConfig.java 函数入口 2.注解过程 简单的来说就是通过配置类的refresh加载容器, 然后创建出单例bean, 然后通过后置处理器的时候加载@Autowried注解, 完成解析和注入。 refresh() -> getBean -> doGetBean -> getSinglet

  • 问题内容: 我通常在.NET中这样写我的SQL 然后执行以下操作: 但是,当我获得的数据直接来自数据库时,我也应该这样做addParameter吗? 这可以接受吗?什么是最佳做法? 问题答案: 您应该始终使用参数: 数据库中的值从哪里来? 在您的示例中,您可以相信’group_id’未被修改为您所不期望的吗? 信任任何人 具有有限数据库访问权限的人可以直接注入其他地方使用的字段吗? 表现 此外,它

  • 问题内容: 如何防止将JavaScript NoSQL注入MongoDB? 我正在开发Node.js应用程序,并且将json对象(即json对象)传递到了mongoose模型的save函数中。我以为幕后有保障措施,但事实并非如此。 问题答案: 注意 我的答案不正确。请参考其他答案。 - 客户端程序在MongoDB中组装查询时,将构建BSON对象而不是字符串。因此,传统的SQL注入攻击不是问题。 有

  • 第一个帖子!和一个java的noob*随便! 我知道有很多关于这个话题的帖子,我已经读过了…我就是解决不了。 我有一个非常简单的HTML表单,有静态输入和动态创建的输入。 HTML自动完成 HTML表单 null AddInput.js 所以问题很简单…给定这些代码,我如何在每个新生成的输入中实现自动完成。 事先多谢。

  • 问题内容: 在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() “注入线” に关する追加情

  • 问题内容: 如何使用Redis实现自动完成功能? 比如说我有一个数组。当我型我得到 我希望你明白这一点。我如何有效地使用redis命令来实现这一点(如果可能,但我认为是)。如果我能通过telnet尝试一些简单的命令来模仿这种行为,那就太好了。 谢谢 问题答案: 如果您要处理的是大型数据集,建议您考虑将其实现。我将一小部分Ruby做到了这一点: 例如: 在Wikipedia的Tries条目上阅读有关