Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示来自其他站点的内容和安全性_Php_Xss - Fatal编程技术网

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

Php 显示来自其他站点的内容和安全性,php,xss,Php,Xss,我需要加载一个用户给定的URL,并在用户给定的网站内容之后显示一个包含我的内容的div 实现这一点是微不足道的: $c = file_get_contents($url); echo $c . $myDivCode; 然而,这会不会让我的服务器面临各种安全问题,比如XSS 如果是这样,考虑到我希望能够尽可能显示用户给定URL的内容(即运行所有安全脚本),处理此问题的最佳方法是什么 为了防止XSS攻击,您只需正确检查和验证/转义所有数据,不允许从该url插入html或javascript代码

我需要加载一个用户给定的URL,并在用户给定的网站内容之后显示一个包含我的内容的div

实现这一点是微不足道的:

$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的攻击