使用mysql_real_escape_string()存储并显示代码;

问题描述:

我正在创建一个网页,允许用户粘贴他们的代码并获得一个唯一的URL以便以后访问它。问题是,我使用使用mysql_real_escape_string()存储并显示代码;

mysql_real_escape_string($_POST['code']) 

防止SQL注入,但它增加了斜线时,在稍后的日期显示的代码,这意味着代码是相同的,它是被宠坏(斜线无处不在。)

当再次显示代码时,有没有办法“解除”它?

对不起,如果这似乎不清楚或明显,这是我的第一个项目使用PHP。

+0

http://php.net/manual/en/function.stripslashes.php – 2012-07-25 16:27:54

+1

请停止使用'mysql_ *'功能,因为它们是[现在弃用](http://news.php.net/php.internals/53799)。改为使用[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php)。 – 2012-07-25 16:29:24

+0

你确定斜杠是来自'mysql_real_escape_string()'还是他们在'$ _POST'? – 2012-07-25 16:30:30

它是echo stripslashes($ code);你在找什么?我认为为了增加安全性,您还必须将特殊字符转换为html实体,并在必要时去除所有脚本标记以避免xss攻击。

参见:

http://php.net/manual/en/function.htmlentities.php

XSS filtering function in PHP

+1

从不编码在存储器上显示。 – 2012-07-25 16:37:26