【发布时间】:2014-08-20 06:59:12
【问题描述】:
我正在制作一个网站,允许用户将用户偏好存储在数据库中,包括链接。
但我意识到,如果用户输入 javascript: // Malicious code here,他们可以在页面上执行任何 javascript,包括获取会话 ID 的能力。
(链接显示给其他用户,因此我想防止这种情况发生)
我已经尝试了以下方法来防止这种情况,但它们都不起作用:
htmlentities()
htmlspecialchars()
strip_tags()
addslashes()
我的代码的快速示例:
$link = // queried from the database.
$title = // queried from the database.
echo '<a href="'. $link .'">'. $title .'</a>';
如果您知道我该如何解决这个问题,那将非常感激。
【问题讨论】:
-
他们不能做任何他们通过打开 Javascript 控制台已经不能做的事情。
-
除非您向不同的用户显示链接而不是设置链接的用户。
-
强制链接以
http开头。 -
@Barmar,用户可以添加指向个人页面的链接,如果任何其他用户访问,他们将运行恶意代码;从而允许他们的帐户被黑客入侵。
-
看看如果您尝试将
javascript:something放在您的 StackOverflow 配置文件中的网站地址中会发生什么。
标签: javascript php security javascript-injection