我使用shell脚本与MySQL数据库通信。MySQL支持将查询指定为外壳参数,如下所示:但是,如果我有一个参数,我想在查询中使用它,我如何保护自己免受注入攻击呢一种天真的方法是将变量值粘贴到请求中,但这不是很安全:
mysql my_db -B -N -e "select id from Table where name='$PARAM'"
在最近的五次访问期间,我在一个INSERT查询中遇到了一个SQL注入。"INSERT INTO sometable set col1='1', (SELECT load_file('/etc/passwd'))";目的是在我有写权限的文件夹中编写一个php。>' INTO OUTFILE'/var/www/app