我制作了一个小脚本,允许用户在我的网站上构建他们的页面或联系表单
但有些朋友告诉我他们想要添加一些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?
如果有安全和好的方式,请告诉我!
谢谢
答案 0 :(得分:0)
如果您的用户可以修改的header.php
文件包含在您的PHP代码中的(使用require
或include
),那么,PHP它包含的代码将被执行。
在你的情况下,我宁愿:
header.tpl
的文件名来表示此文件不包含PHP代码,但确实是某种模板。inclure
/ require
来获取该模板文件的内容,只需使用简单的file_get_contents()
。答案 1 :(得分:0)
如果由于某种原因你仍然想要使用.php
而不是对模板不那么危险的东西,那么你应该清理用户输入,这样他们就不会利用它。
也许你可以从strip_tags()
函数开始并在那里使用allowable_tags
参数