我应采取哪些措施来保护我的网站免受脚本注入?

时间:2011-01-03 20:51:45

标签: javascript security xss

问候每个人

作为javascript攻击和所有其他类型的攻击预防和护理的新手,我想了解如何使我的网站更安全地受到攻击。

我们正在推出一个阿拉伯语的新网站(utf8)。我们的网站上有一个输入框,它从用户处获取搜索字符串并显示带有结果的字符串。此字符串也会插入到我们的mysql数据库中,以跟踪人们搜索的内容。

我在后端做的是将strip_tags,mysql_real_escape_string放在搜索字符串上。我尝试在输入搜索字符串上使用javascript的转义函数,但这完全弄乱了阿拉伯语文本,不能使用此字符串在后端搜索甚至在前端显示搜索字符串。我可以在前端或后端做些什么来使网站更安全免受攻击吗?

感谢你 姆兰

2 个答案:

答案 0 :(得分:2)

我强烈建议不要在客户端进行任何类型的转义。您不能依赖逃逸实际发生的事实,因为恶意用户可以修改其末端的脚本以绕过转义,并且因为较旧的浏览器(或具有脚本阻止程序的浏览器)可能最终阻止脚本运行。作为一般规则,永远不会信任来自客户端的任何数据,即使您已经努力在客户端对其进行清理。

你在服务器端做的事似乎是善意的。如果没有对代码的更多访问权限,我认为我们无法确认您是否正确使用这些功能,但您至少在正确的轨道上使用它们。

顺便提一下,该网站好运!

答案 1 :(得分:0)

您可以通过更改设计来避免此问题 保持输入框不变,不要在结果中返回搜索字符串。

对于存储在数据库中的列表,只要您不在网页中向用户显示该列表,就不存在脚本注入的风险。