Php 显示来自其他站点的内容和安全性
我需要加载一个用户给定的URL,并在用户给定的网站内容之后显示一个包含我的内容的div 实现这一点是微不足道的:Php 显示来自其他站点的内容和安全性,php,xss,Php,Xss,我需要加载一个用户给定的URL,并在用户给定的网站内容之后显示一个包含我的内容的div 实现这一点是微不足道的: $c = file_get_contents($url); echo $c . $myDivCode; 然而,这会不会让我的服务器面临各种安全问题,比如XSS 如果是这样,考虑到我希望能够尽可能显示用户给定URL的内容(即运行所有安全脚本),处理此问题的最佳方法是什么 为了防止XSS攻击,您只需正确检查和验证/转义所有数据,不允许从该url插入html或javascript代码
$c = file_get_contents($url);
echo $c . $myDivCode;
然而,这会不会让我的服务器面临各种安全问题,比如XSS
如果是这样,考虑到我希望能够尽可能显示用户给定URL的内容(即运行所有安全脚本),处理此问题的最佳方法是什么 为了防止XSS攻击,您只需正确检查和验证/转义所有数据,不允许从该url插入html或javascript代码
使用htmlspecialchars()将HTML字符转换为HTML实体。因此,标记标记标记开始/结束的字符被转换为html实体,您可以使用strip_tags()只允许一些标记,因为函数不会去除onclick或onload等有害属性。最好的方法可能是在这样的iframe中显示站点:
echo "<iframe src=\"$url\"></iframe>";
echo”“;
这样,用户就可以直接从url加载页面,而无需服务器代理。
但是,由于您正在显示来自另一个站点的信息,除非您完全删除脚本和HTML,否则您的站点将始终容易受到XSS的攻击