主题由用户编辑

时间:2011-07-27 10:36:35

标签: php edit

我制作了一个小脚本,允许用户在我的网站上构建他们的页面或联系表单

但有些朋友告诉我他们想要添加一些JS脚本!

所以我考虑允许用户编辑header.php文件

文件内容是 - 示例

<head>
<title>Mysite | user_name</title>
</head>

现在我有了想法

我将从真实文件(header.php)中获取副本

并允许用户编辑

可编辑的版本将是

<title>{Mysite} | {user_name}</title>

然后,我将使用(str_replace函数)用我的网站标题varibal替换{mysite}

我的问题是!

如果用户发布了php代码

例如

<head>
<title>{Mysite} | {user_name}</title>
<? include /// or echo 'error' or what ever ! ?>
//and some things others
</head>

php代码会起作用吗?或将被忽略并仅用作html?

如果有安全和好的方式,请告诉我!

谢谢

2 个答案:

答案 0 :(得分:0)

如果您的用户可以修改的header.php文件包含在您的PHP代码中的(使用requireinclude,那么,PHP它包含的代码将被执行。

在你的情况下,我宁愿:

  • 使用类似header.tpl的文件名来表示此文件不包含PHP代码,但确实是某种模板。
  • 我不会使用inclure / require来获取该模板文件的内容,只需使用简单的file_get_contents()

答案 1 :(得分:0)

如果由于某种原因你仍然想要使用.php而不是对模板不那么危险的东西,那么你应该清理用户输入,这样他们就不会利用它。

也许你可以从strip_tags()函数开始并在那里使用allowable_tags参数