我使用shell脚本与MySQL数据库通信。MySQL支持将查询指定为外壳参数,如下所示:但是,如果我有一个参数,我想在查询中使用它,我如何保护自己免受注入攻击呢一种天真的方法是将变量值粘贴到请求中,但这不是很安全:
mysql my_db -B -N -e "select id from Table where name='$PARAM'"
由于确定订单的条件是动态的,所以我需要使用子查询而不是联接,所以我写道:FROM orderpositions(SELECT id FROM orders WHERE userid=118(子查询可以是完全不同的东西,可能是嵌套的联接之类的,但是总是会返回订单I的列表,我需要链接的顺序。)我读过有关相关查询的文章,并认为我的方法非常慢,因为子查询只对orderpositions表中的每一行执行一次。
作为一个测试,我尝试创建一个临
我必须将where companyNo=$companyNo添加到所有查询中。select * from messages where companyNo=$_SESSION['companyNo']因此,我可以忽略SQL查询中的companyName=$_SESSION['companyNo'],并
MySQL将自动返回$_SESSION['