PHP:使用它的变体搜索并替换UNION,然后替换回

时间:2016-11-30 13:27:48

标签: php

这是关于字符串操作的问题,而不是关于数据库安全性的问题。我完全了解PDO和准备好的声明。

我想要防止'#34; UNION"从插入我的数据库。它不是唯一的,有一个列表:" EXECUTE"," DROP"等等我使用" UNION&#34 ;举个例子。

我的计划是对任何给定的字符串使用str_replace()(包括完整的SQL语句,而不仅仅是值)并转换任何出现的" UNION"到其他一些仲裁字符串然后将结果插入数据库。例如。 "我的工会要求投票"将成为"我的#noinu#称为投票"。

当从数据库中提取内容以显示在前端时,出现任何" #noinu#"将替换为" union"。

要替换的单词是SQL关键字,无论大小写都可以使用,所以我没有大小写匹配。

问题在于,当有人进入时,例如,"工会联盟" (关于第一个词的大写字母U)最终打印出来的结果是"工会联盟"用小写字母。

如果我试图考虑大写,小写和正确的情况,那么我仍然会错过这样的例子," uNiOn"它仍将在MySQL中运行。

我认为某种正则表达式将成为解决方案的一部分,然后我画一个空白。

如何识别单词的大小写变体(无需手动定义所有组合),用它自己的自定义替换替换每个变体,然后将其替换回来?

0 个答案:

没有答案