如果我的网站上线了(不要认为它会,那只是一个学习练习)。
我一直在使用mysql_real_escape_string();来自POST,SERVER和GET的数据。 另外,我一直在使用intval();在必须只是数字的字符串上。
我认为这涵盖了我从 sql注入?正确?我可以做更多吗?
但是,我不确定它是如何提供的(如果它提供任何保护)来自 XSS注入?
有关如何打击这两种攻击形式的更多信息表示赞赏。
答案 0 :(得分:5)
我认为这包括我从sql注入?正确的吗?
没有。它会使您的数据混乱不堪。
我可以做更多吗?
是。您可以保护您的代码免受SQL注入
这是 a brief explanation I've made already
只有我必须补充一点,你不应该破坏你的源数据阵列
POST数组与SQL有关。数据可能会进入电子邮件,HTML表单,文件,在线服务等。为什么要用SQL保护来处理它?
另一方面,您可能不是从POST而是从文件,在线服务和其他查询中获取数据
因此,您必须保护不是源数组,而是进入查询的实际数据
说到XSS,再没有简单的普遍规则
但一般情况下,您必须使用htmlspecialchars($data,ENT_QUOTES);
作为文本输出的每个不受信任的数据,并在某些特殊情况下使用其他类型的验证,例如文件名
答案 1 :(得分:-1)
使用硬编码准备的查询