0

所以这是我的问题:

我为我的网站编写了一个管理区域,它有一个应该为网站创建新闻的文本区域。使用等时一切正常。但是当涉及引号(“”)时,一切都变得一团糟。引号用 \(斜杠)转义。

提交的新闻将在网站的索引页面中看到,因此我知道管理中的书面 HTML 是否正常。代码应该是这样的:

<a href="http://www.youtube-nocookie.com/v/q9FY9O8os4M&hl=it_IT&fs=1?rel=0" rel="iframe-640-505" class="pirobox_gall1" title="MC Qoppa - Dashnise "><img src="../styles/thumbs/qopa2.jpg" width="250" height="140" class="thumb"></a>

这是提交后的样子:

<a href=\"http://www.youtube-nocookie.com/v/q9FY9O8os4M&hl=it_IT&fs=1?rel=0\" rel=\"iframe-640-505\" class=\"pirobox_gall1\" title=\"MC Qoppa - Dashnise \"><img src=\"../styles/thumbs/qopa2.jpg\" width=\"250\" height=\"140\" class=\"thumb\"></a>

当我注意到这个问题时,我正在使用 TinyMCE(一个所见即所得的编辑器),认为它是导致问题的原因,但事实并非如此,因为我已经删除了它,但我仍然不断收到这些 HTML 混乱。

4

1 回答 1

1

魔术引号是一个已弃用的 PHP 功能,最初旨在防止对 Web 应用程序的安全性进行SQL 注入攻击。您的虚拟主机可能打开了魔术引号。

为安全起见,在 SQL 语句中包含用户输入时,开发人员应使用 mysqli 和 PDO 扩展的“准备语句”功能。如果由于某种原因无法做到这一点(例如,这些较新的扩展在特定的 Web 主机上不可用),开发人员应该正确使用适当的 MySQL 转义函数(例如mysql_real_escape_string())。

您可以尝试在 php.ini 或 .htaccess 中关闭魔术引号,看看斜线是否消失;但是,请首先确保您的应用程序能够抵御 SQL 注入攻击。

于 2012-04-08T08:46:13.937 回答