我在Laravel中真的很新,我不确定如何通过使用SQL Injections
的{{1}}查询来保护我。我已经阅读了低谷documentation并且我已经阅读过那种不安全的信息,应该加以保护,因为它在查询中作为字符串注入...
这些表达式将作为字符串注入到查询中,因此请注意不要创建任何SQL注入点
Myquery看起来像这样
DB::Raw
查询只在页面上显示包含产品的类别。
答案 0 :(得分:1)
如果有通过 $ _ GET ['foo'] 或 $ _ POST ['bar'] 发送的数据,则通常会发生sql注入风险网络用户。您应该通过将数据绑定到原始查询来保护数据库免受SQL注入,如下所示:
$risky_input=$_GET['some_risky_input'];//assuming this comes from an input field
$result=
DB::select(
DB::raw("SELECT * FROM category WHERE category_name=:queriedterm ")
,['queriedterm'=>$risky_input]//binds data throuhg array
)
;
请注意冒号“:”及其旁边的变量。这样可以保护您的查询免受sql注入。
注意:您的查询没有任何错误注入风险,因为它不包含Web用户填写的任何文本输入字段中的参数。