如何安全地存储输入的代码


How to securely store code from input

我目前正在构建一个管理面板。有一个页面,其中包含HTML的文件被加载到HTML编辑器(TinyMCE)中,并保存到加载的相同文件中(以保存更改)。

该文件只是一个包含动态链接的页面,这些链接将与管理面板交换。如果所有这些页面都是相同的,那么我将简单地将核心值保存到数据库中,然后加载特定的部分,然而,情况并非如此,因为模板有许多变体,很少有两个是相同的。

因此,我想要一个客户端可以用来编辑这些页面的应用程序。我该如何以一种安全的方式保存这些文件,从而消除任何恶意行为?

谢谢。

在将html存储在数据库中时对其进行消毒通常是一个坏主意,如果您弄错了并且损坏了数据,则无法返回,一旦您修复了任何错误,您将不得不让用户重新输入内容。你可能认为你已经涵盖了所有基础但总会有用户说"当我这样做...."

相反,只要将数据存储在数据库中(显然是过滤sql注入),你不希望Mr O'reilly破坏你的数据库。

你需要在从db出来的路上过滤内容,你怎么做取决于你的情况。

如果你只是希望你的用户存储文本,那么使用htmlspecialchars就足够了,这将改变<&lt;,等等

然而,如果你希望你的用户能够使用标签,那么条带标签将是更合适的

$allowable_tags = array(
  '<p>',
  '<h1>',
  '<h2>',
  '<h3>',
  '<strong>',
  '<em>',
);

$content =  $db->get($page_id);
echo strip_tags($content,implode('',$allowable_tags));