我做了一个容易进行sql注入的登录。哪个好。但我想避免有人在登录中使用DROP TABLE。例如,我可以以某种方式检查输入是否包含像drop或table这样的单词。
感谢。
答案 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)
if (false !== stripos($_POST['username'], 'DROP'))
将有效。