用户可以在他们的个人资料描述中使用html,css,javascript,php e.t.c.

时间:2018-01-26 17:26:07

标签: php html css mysql user-profile

因此,在我的网站上,我有一个供用户使用的字段,可以设置最多100个字母的个人资料说明。我的问题是他们可以使用html作为他们的个人资料描述!我使用输入作为描述,直接放入mysql数据库。

以下是显示其个人资料说明的代码

<div id="mid-profile-desc">
  <p><?php echo $userProfileDesc;?></p>
</div>

<!--String is just this from database: $userProfileDesc = $row["profiledesc"];-->

但是对于这些用户在设置他们的个人资料描述时,他们可以使用诸如html,css,javascript,php&amp; amp;多很多。他们也可以用它控制我的数据库。

那么如何禁止用户使用所有这些?我可能只是禁止“&lt;”和“&gt;”信件,但这可能也不安全。这样做的好方法也是安全的吗?

2 个答案:

答案 0 :(得分:2)

当前显示的用户输入没有过滤器。这意味着,虽然人们不能使用PHP代码,但他们可以将任何html标签或javascript插入您的网站,并使用xss攻击。

解决方法是htmlspecialchars

<?php echo htmlspecialchars($userProfileDesc); ?>

在数据库中使用未转义的html通常不是问题,但是你需要担心像sql注入这样的事情。使用参数化查询来避免这些。

答案 1 :(得分:1)

首先:在存储之前使用htmlspecialchars,在输出之前解码。

第二:使用PDO - 语句sql查询。