在Laravel中保护原始SQL查询以防止注入

阿米纽斯

当不尝试任何SQL注入修复时,该查询可以完美地工作,没有任何连接问题。只有在尝试更改查询以保护其免受注入时,语法才会中断。

我正在尝试保护此原始查询以防止SQL注入

我已经在文档中看到了(而且我知道goo'ol php中已准备好的语句),而Laravel展示了一个简单的示例,例如:

$results = DB::select('select * from users where id = :id', ['id' => 1]);

或这个

$users = DB::select('select * from users where active = ?', [1]);

我正在尝试在WHERE子句中与它对应的位置执行此操作,该语句等于从形式$ a提供的变量,但是所有尝试都破坏了语法。

所以像这样:

where author = ?, [$ba], or '$ba' or where author = :ba, ['author' => '$ba']

给出语法错误。

    $ba = 'whatever';    
    $results = 
DB::select(DB::raw("SELECT 
          t.id, t.AvgStyle, r.RateDesc
          FROM (
               SELECT
               p.id, ROUND(AVG(s.Value)) AS AvgStyle
               FROM posts p
               INNER JOIN styles s
               ON s.post_id = p.id  
               WHERE author = '$ba'    
               GROUP BY p.id
               ) t
               INNER JOIN rates r
                   ON r.digit = t.AvgStyle"
                        ));

谢谢你。注意>该问题不符合赏金资格。未经我的允许,有人总是把它放在我的每个问题上。

阿米纽斯

答案与埃弗顿所说的非常接近:只需要在右边加上一个括号即可。

那是:

, )[$ba]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用psycopg2在Django中保护原始SQL查询

如何保护节点表示中的DELETE请求以防止注入?

Doctrinepersist()是否可以防止SQL注入?

Querydsl 是否可以防止 SQL 注入

显示如何参数化sql查询以防止sql注入攻击的示例

如何在Java构建查询,以防止SQL注入用事先准备好的声明

PetaPoco的Query(字符串查询,参数)方法是否可以防止SQL注入?

如何使用Postgres查询修复函数以防止SQL注入

如何从输入中保护SQL查询?

Spring中的SimpleJdbcTemplate是否可以防止SQL注入?

传递键值对还可以防止SQL注入攻击吗?

是否有必要验证输入以防止SQL注入?

Java-转义字符串以防止SQL注入

Knex.js是否可以防止SQL注入?

准备语句的正确顺序以防止用户输入的SQL注入

Spring Data JPA是否可以防止SQL注入

SQLite如何转义值以防止SQL注入

防止laravel中的sql注入

如果所有 SQL 查询都应该准备好以防止 SQL 注入,为什么语法允许非准备查询?

防止用于在线SQL查询的SQL注入

Laravel:如何保护资源以防止其他用户访问?

保护动态生成的SQL查询免受SQL注入。C#

sql查询到laravel中的原始查询

如何在Laravel中防止SQL注入

es6模板文字可以防止SQL注入吗?

确认正确使用代码以防止SQL注入以及正确使用using语句

这个简单的字符串转义可以防止任何SQL注入吗?

PDO准备好的语句是否足以防止SQL注入?

ActiveRecord :: ConnectionAdapters :: OracleEnhancedAdapter#quote是否可以防止SQL注入?