PHP - 在$ _POST中查找特定单词

时间:2012-10-25 19:11:15

标签: php post sql-injection

我做了一个容易进行sql注入的登录。哪个好。但我想避免有人在登录中使用DROP TABLE。例如,我可以以某种方式检查输入是否包含像drop或table这样的单词。

感谢。

2 个答案:

答案 0 :(得分:1)

我建议您使用我的简单PDO database library来解决您的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数据库,可以销毁并重新创建每个页面请求,然后您不必担心。

答案 1 :(得分:0)

如果您想知道在“用户名”字段中是否已提及“DROP”字样,

if (false !== stripos($_POST['username'], 'DROP'))将有效。