Php 允许用户提供<;iframe>;没有XSS的风险?

Php 允许用户提供<;iframe>;没有XSS的风险?,php,xss,Php,Xss,我的网站允许写博客,我使用textarea发布博客,我需要允许用户共享youtube视频(我需要允许iframe标记这样做)或使用img标记显示图像,或通过允许a标记使用链接,问题是我需要保护网站免受XXS攻击,这就是为什么我害怕允许这些标签,有什么办法可以做到这一点吗 我可以用这样的东西吗: <?php $string = "<b>hello world!</b>"; echo "without filtering:".$string; echo

我的网站允许写博客,我使用textarea发布博客,我需要允许用户共享youtube视频(我需要允许iframe标记这样做)或使用img标记显示图像,或通过允许a标记使用链接,问题是我需要保护网站免受XXS攻击,这就是为什么我害怕允许这些标签,有什么办法可以做到这一点吗

我可以用这样的东西吗:

<?php
   $string = "<b>hello world!</b>";
   echo "without filtering:".$string;
   echo "<br>";
   $filtered = htmlspecialchars($string); // insert into database filtered
   echo "After filtering:".$filtered;
   echo "<br>";
   $de_filtering = htmlspecialchars_decode($filtered); //retrieve from database and display
   echo "After de-filtering:".$de_filtering;        
  ?>


可以这样做吗?

我非常推荐使用预构建的。建立自己的系统将是一个漫长的过程,可能会非常麻烦。(在GPL许可证下)是一个非常流行的许可证,也是一个非常流行的许可证(尽管这个许可证需要花钱)。还有很多,但我绝对建议使用现有的,而不是建立自己的


至于防止某些XSS攻击,您可以查看有关XSS的信息。一些好的基本原则是,对一切都进行消毒,并且总是假设有什么东西被劫持了。在验证用户的输入是否符合您的期望之前,不要信任用户的输入。

新发布的HTMPrizer 4.4添加了一个功能,可以完全做到这一点

简而言之,您应该允许来自受信任域的iframe。来自不受信任域的iFrame可能包含恶意javascript/flash/embeds