Php 回显用户输入文本的安全问题

Php 回显用户输入文本的安全问题,php,security,xss,Php,Security,Xss,我接受表单中的用户文本,并将其回显到页面上(代码也会进入数据库,但这是预先准备好的查询,所以不用担心)。我想知道它是否会导致任何可能的安全隐患?在服务器端,我的意思是,我知道在客户端,你可以破坏,但你能到达服务器端吗 我需要知道,在这种情况下是否可以执行类似eval的操作。在php中使用htmlspecialchars($yourstring)或strip字符,无需打开漏洞利用的可能性。如果直接使用用户输入查询SQL数据库,则可能会受到SQL注入的影响。就用谷歌搜索一下吧 编辑:哦,我错过了说你

我接受表单中的用户文本,并将其回显到页面上(代码也会进入数据库,但这是预先准备好的查询,所以不用担心)。我想知道它是否会导致任何可能的安全隐患?在服务器端,我的意思是,我知道在客户端,你可以破坏,但你能到达服务器端吗


我需要知道,在这种情况下是否可以执行类似eval的操作。

在php中使用htmlspecialchars($yourstring)或strip字符,无需打开漏洞利用的可能性。

如果直接使用用户输入查询SQL数据库,则可能会受到SQL注入的影响。就用谷歌搜索一下吧


编辑:哦,我错过了说你只是附和文本的文本。嗯,如果您评估用户输入,那么用户可能会发出PHP命令。但是我不知道为什么要这样做,因为这样用户就可以向服务器发出任何PHP命令(这显然是一种安全风险).

您解释的场景称为XSS。有可能借助XSS漏洞危害您的服务器,但它确实需要其他东西

假设您有一个管理员帐户,该帐户具有通过web对服务器进行配置更改的权限。现在,如果攻击者创建了一个XSS链接,并以某种方式让管理员单击它,那么他的帐户将被破坏

一旦攻击者具有管理员访问权限,他就可以系统地控制整个系统。这是最近在Apache中发生的。这是我见过的关于安全事件的最好的报道,你会从中学到很多东西。

使用:

echo htmlentities($string);
到处都是。除非你想让你的应用程序受到几十种可能的攻击:

如果需要回显HTML标记:

1) 在将HTML保存到数据库之前,在HTML上使用HTMLPurifier

2) 我建议使用XHTML严格过滤


3) 不允许使用脚本、框架等标记和onclick等属性。进入HTML的用户永远不需要的标记和属性列表很长。只需将他们限制在他们可能需要的范围内,例如:p、ol、ul、h1、h2、h3、dl、abbr、img(这些可能很危险,通过img标签可能会有很多攻击,请小心)、a(detto)、table,或者更多。

是否有任何服务器端漏洞利用?你能举个例子吗?详细说明服务器端漏洞利用?XSS是一种服务器端攻击。(实际上)用户输入如果不经过消毒,可能会擦除整个数据库或执行各种不需要的操作,读取SQL注入。+1。好文章。。但是你没有抓住重点。。我不担心客户端注射及其可能产生的影响。。我需要知道它是否有任何服务器端的影响。感谢您的努力。@pinaki-如果您正在基于用户提供的内容进行某种服务器包含/评估,它也会影响服务器端。例如,请参见本页-@pinaki。。但除此之外,XSS不能直接对服务器造成伤害;这是客户端的事情。嗯。。你的答案似乎是唯一的结论,所以我要接受它。。谢谢如果你还有其他类似的帖子,一定要告诉我。。