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将由我负责。
[请原谅我的英语错误。]