我想知道这是否可靠。在我的PHP文件中,我执行以下代码:
if(strpos($text,"'") === false) {
//perform query
} else { /*illegal character*/ }
我知道我可能听起来像个白痴,但这有什么缺陷?有人可能会使用不同的字符编码来绕过它并注入单引号吗?
答案 0 :(得分:2)
如果您想阻止SQL注入 - 请遵循以下指南:How can I prevent SQL injection in PHP?
尝试实施自己的自定义措施只会以泪流满面。
对于记录 - 您的代码不会阻止SQL注入。例如
105; DROP TABLE Suppliers
将通过
答案 1 :(得分:0)
不,不是。注射可以使用'
,"
,;
和任意数量的其他字符。例如,如果使用错误的文本编码,则可以使用某些Unicode字符来终止字符串。正如@TheShiftExchange指出的那样,您的代码将通过DROP TABLES
命令,它可能会导致各种其他注入。