php - 在 php ajax 过程中使用原始 $_POST 变量
问题描述
我想知道该代码是否容易受到 sql 注入的影响?
我的困境是基于$_POST
直接使用变量的事实,而不像$something = $_POST['src']
.
$sql = "update posts set img = :aimg where id = :aid";
$st = $db->prepare($sql);
$st->execute(array(
":aimg" => $_POST['src'],
":aid" => $_POST['id']
));
echo $_POST['src'];
解决方案
您应该验证每个输入,在本例中为 $_POST['src'] 和 $_POST['id']。例如,如果 $_POST['id'] 必须是一个数字,则验证它,等等。请记住,客户端可能是其他东西而不是浏览器。当然,参数化是一个很好的做法,但你不能仅仅依赖它。对了,赋值 $something = $_POST['src']; 没什么区别。
推荐阅读
- java - IP 作为 Linux 数组元素抛出 UnknownHostException 但作为常量起作用
- ios - IOS 上 Flutter 应用启动期间 OpenGL 渲染崩溃
- python - 如何正确运行查询 Flask-SQLAlchemy 数据库的连续测试?
- c# - 从 .net 核心中的外部应用程序控制通用主机
- javascript - 如何在 Rails 中使用中间件通过 JWT 获取 current_user_id?
- java - 如何在 beanshell 中的 java 中构造 JSON 的多个对象和数组并查看输出
- asp.net - 未保存自定义联系人方面
- php - 从没有页面刷新的操作
- powershell - 在部署中使用 VSTS 作为 PowerShell 库
- html - 宽度和高度 100% 不起作用