在页面中输出数据是安全的吗?

3

我有一个表单,用户可以在其中输入网页模板,并在其浏览器中预览。

此页面仅供他们查看:

<?php
echo "<title>".htmlspecialchars($_POST['title'], ENT_QUOTES)."</title><br/>";
echo nl2br($_POST['body']);
?>

我在测试过程中意识到它可以访问我的本地css文件/js文件。这让我想知道是否可能导致安全攻击?

网站的cookie具有域标志和httponly标志。如果客户端尝试XSS,他们只会自己被攻击,对吗?

我的Web服务器回显$_POST是安全的吗?


1
据我所知,你是正确的,他们只会利用自己。只要你不允许他们输入 PHP 代码并使用 eval() 函数,我就看不出有什么安全问题会被用来攻击你。 - drew010
谢谢 Drew。我会记住在公开场合不要使用 eval()!无法预测有人会尝试什么查询。 - user1360107
1
是的,通过 eval 他们可以尝试 echo file_get_contents('/some/sensitive/file/with_passwords.php') 并且能够看到它。很多网站允许用户使用 HTML 创建自己的个人资料并且没有问题。但是根据你正在做什么,如果有很多人将在你的站点上下文中访问他们的 URL,那么可能需要过滤掉很多 XSS 技巧,以防止他们窃取 document.cookie - drew010
1个回答

1

即使在使用httponly标志的情况下,你仍然希望保护自己免受XSS攻击,出于以下原因: http://lcamtuf.coredump.cx/postxss/。攻击者可能窃取页面上呈现的除了cookie以外的其他有价值的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接