htmlspecialchar
的使用是否足以防止 SQL 注入和基于 XSS 的攻击mysql_real_escape_string
?str_replace
我正在为论坛网站编写软件。因此,我想保护我的网站。我不擅长做PDO语句,想用上面的库函数。
通过使用htmlspecialchar
单引号和双引号,大于、小于和 & 符号将被编码并防止 XSS 攻击。而且我不会将它们解码为原始形式。
然后,mysql_real_escape_string
将阻止第一顺序的 SQL 注入。
第三,trim
将删除两端的空格。(这可能是可选的)
最后,如果我使用str_replace
将通过代码输入的所有表名和数据库名替换为其他名称会安全吗?
示例:假设我有一个数据库名称ABC
和表名称XYZ
。现在有人使用这种说法:
statement = "SELECT * FROM XYZ WHERE name = '" + userName + "';"
OR
SELECT * FROM XYZ WHERE name = '' OR '1'='1' -- ';
OR
a';DROP TABLE XYZ; SELECT * FROM userinfo WHERE 't' = 't
在这里,如果我将表名替换XYZ
为DEF
使用,str_replace
那么我认为代码将不起作用,因为没有这样的表名。
SQL注入如
1 OR 1=1, I Will Also str_replace \1\.
我将只有UPDATE
, INSERT
,SELECT
和DELETE
数据库权限,所有这些词也str_replace
将由我负责。
[请原谅我的英语错误。]