自动前置htaccess一个php文件

时间:2012-01-31 22:40:25

标签: php html apache .htaccess

我正在一个用户可以用HTML语言编辑页面的网站上工作。我想在每个页面添加一个菜单栏,它从数据库加载一些信息,所以它必须是一个PHP文件。为了实现这一点,我在.htaccess文件的HTML页面中启用了PHP代码。问题是用户现在可以在他们的HTML文件中编写一些PHP内容并运行它。我怎么能解决这个问题?是否有其他方法可以自动将菜单栏添加到所有用户的所有页面?

1 个答案:

答案 0 :(得分:3)

您的困境有多种选择:

  • 您可以使用HTMLPurifier(您可能还想这样做)来清理用户提交的内容。这也将摆脱PHP。

  • 将用户提交的页面保存到普通.html页面时,可以正确注入菜单栏。 (你仍然会遇到有害的Javascript提交。)

  • 和/或使用更严格的包装程序脚本,该脚本不执行用户数据。

类似的东西:

<?php
   readfile("menubar.html");
   readfile("userdata/" . basename($_GET["htmlpage"]));
   readfile("footer.html");

然后设置RewriteRule来通过该脚本管道所有html文件请求:

 # in userdata/
 RewriteRule ^(\w+\.html)$  ../addmenubar.php?htmlpage=$1