php - 在 PHP 中的 html 属性中转义 URL

标签 php security xss

我目前正在使用一些现有的代码,这些代码从请求中取出一个 URL 并将其输入到 anchor 的源中。这显然是 XSS 的一个开端,使用 urlencoding 并不能保留 anchor 内 url 的完整性。我很好奇在不破坏链接的情况下转义数据的最安全方法是什么。

IE。

 <? 
    $url = $_REQUEST['url'];
    echo '<a href="' . $url . '">sometext</a>'; 
?>

最佳答案

htmlspecialchars($url)将 HTML 敏感字符转换为其实体等效项。但是,也可以将 javascript 片段插入到 url 中——我个人不了解这些细节。更复杂的解决方案,例如 HTML Purifier可以帮助您覆盖大多数漏洞。

关于php - 在 PHP 中的 html 属性中转义 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6025330/

相关文章:

python - 防止使用 Python 渲染某些 HTML 标签

php - PHP 是如何工作的 - 文献

php - 需要转义或清理显示在 &lt;textarea&gt; 中的输出?

javascript - 在 javascript 中安全地存储数据(自动建议)

php - 站点使用 SSL 保护,但当刷新 SSL 消失时

javascript - 保护用户定义的 javascript 函数以保护 node.js 服务器

javascript - 如何使用 Javascript 从 CDN 加载外部 css 文件?

php - 将特定的类/ID 应用到菜单上的当前页面 (PHP)

php - 带占位符的 MariaDB 条件插入不适用于 PDO

mysql - 使用 jdbc-provider 在 Mule 中配置 Spring Security