我有一个用PHP编写的Web应用程序。模板引擎是SMARTY。我的问题非常简单,但答案应该不那么容易,因为我搜索出来的内容无济于事。
当我telnet到端口80并运行以下命令时:
GET /some_directory_on_my_server/?""><SCRIPT>alert(123)</SCRIPT>
服务器以html页面回复。当我保存此HTML页面并在浏览器中打开它时,我在页面顶部看到警报(123),这意味着该站点容易受到跨站点脚本(XSS)的攻击。
我的问题是如何访问用户输入的实际网址以进行清理?当涉及表单或数据库查询的用户输入清理时,该方案似乎更容易,因为您实际上有一个变量可供操作,但在这种情况下用户在浏览器中输入的实际网址,如何获取网址本身来清理它?
为了您的信息,我已经阅读了所有为XSS Prevention提供库函数的模块,但没有一个给出了如何处理实际URL XSS攻击的示例。顺便说一句,我的php配置中的magic_quote_gpc
已经关闭。我现在应该怎么做?有什么想法吗?