Php 菲律宾比索–;在$\u POST中查找特定单词

Php 菲律宾比索–;在$\u POST中查找特定单词,php,post,sql-injection,Php,Post,Sql Injection,我的登录名易受sql注入攻击。这很好。但是我想避免有人在登录时使用DROP表。例如,我是否可以检查输入是否包含drop或table之类的单词 谢谢。我建议您使用我的simple,它将解决您的SQL注入问题 阅读代码,它不是很长(~3kb),它将教您如何使用准备好的语句处理数据库查询。然后,稍后您可以使用迁移、查询生成器和ORM实现等功能迁移到真正的数据库库 $pdo = new PDO(...) $name = $_POST['name']; // @todo make sure it's a

我的登录名易受sql注入攻击。这很好。但是我想避免有人在登录时使用DROP表。例如,我是否可以检查输入是否包含drop或table之类的单词


谢谢。

我建议您使用我的simple,它将解决您的SQL注入问题

阅读代码,它不是很长(~3kb),它将教您如何使用准备好的语句处理数据库查询。然后,稍后您可以使用迁移、查询生成器和ORM实现等功能迁移到真正的数据库库

$pdo = new PDO(...)

$name = $_POST['name'];
// @todo make sure it's a good name

$statement = $pdo->prepare('INSERT INTO `user` (`name`) VALUES (?)');
$statement->execute(array($name));

$user_id = $pdo->lastInsertId();
更新
好的,我只是重读了你们的问题,你们实际上想要一个SQL注入演示系统——你们只是不想让它受到某些SQL注入的影响?这听起来是个不值得费心的坏主意。设置一个SQLite数据库,可以在每次页面请求时销毁并重新创建该数据库,这样您就不必担心了。

if(false!==stripost($\u POST['username'],'DROP'))
如果您想知道在发布的“username”字段中是否提到了“DROP”一词,则该数据库将起作用。

是。但如果您使用的是准备好的语句和绑定参数,则不必担心这一点。向我们展示您所做的尝试。
“我的登录很容易受到sql注入的攻击。这很好。”
您的意思是说,“哪不好?”。SQL注入不是很好,除非你的Toby the Tiger,否则一切都是GRRRREAT。如果你走这条路,你必须检查其他SQL关键字。希望没有人叫格兰特。这是解决问题的错误方法。我应该可以使用“DROP TABLE”作为我的用户名,而不会破坏你的数据库。@Landon我是一个没有特权的孩子,所以我们买不起品牌名称。我不会在现实生活中使用它。这只是对同学们的一个测试,让他们知道如何使用sql注入。太棒了。非常感谢:)@Jeff如果答案解决了你的问题,你必须选择正确的答案。