显示来自其他站点和安全性的内容

时间:2014-09-02 01:02:20

标签: php xss

我需要加载用户指定的网址,并在用户指定网站的内容后显示包含我内容的div。

实现这一点很简单:

$c = file_get_contents($url); 
echo $c . $myDivCode;

但是,这不会打开我的服务器以解决各种安全问题,比如XSS吗?

如果是这样,考虑到我想要能够尽可能显示用户给定URL的内容(即运行所有安全脚本)的最佳方法是什么。

2 个答案:

答案 0 :(得分:1)

最好的方法可能是在iframe中显示网站:

echo "<iframe src=\"$url\"></iframe>";

这样,用户可以直接从网址加载页面,而无需服务器代理它。 但是,由于您要显示来自其他网站的信息,除非您完全删除脚本和HTML,否则您的网站将始终容易受到XSS攻击。

答案 1 :(得分:0)

当然,您可以使用xss漏洞。

为了防止XSS攻击,您只需要正确检查并验证/转义所有数据,不要允许从该网址插入html或javascript代码。

使用htmlspecialchars()将HTML字符转换为HTML实体。所以像&lt;&gt;这样的字符标记开头/结尾的标签变成了html实体,你可以使用strip_tags()只允许一些标签,因为函数不会去除onclick或onload等有害属性。