我们正在制作一个与电子商务相关的新PHP应用程序,我们已经开始考虑如何解决模板以满足客户需求。
我们想要做的是为我们的客户提供上传/修改模板以适合他们公司的概况。最初的想法是我们不会重新发明轮子,所以让我们的客户使用FTP上传他们的模板,因此需要基本的HTML技能。对于那些想要修改/自定义模板并且没有知识的客户,我们也提供该服务。
我知道在将其视为安全之前需要解决许多问题,例如阻止XSS并编写脚本以检查每个上载的文件是否存在潜在的安全威胁等等。当然,有些部分可能会让客户自己修改复杂,因此这种方法可能不适用于>> all<<前端应用程序中的模板文件。
但除此之外,处理这个问题的好方法是什么?
答案 0 :(得分:2)
您确实需要阻止您的客户将任何 php或javascript合并到他们的网站中。任何图片上传都应该格式转换为其他内容,然后再上传。
问题是大多数编辑都不允许您构建页面的片段。正如塞缪尔建议你可以限制他们只编辑CSS(并发布他们自己的图形内容) - 但这可能是相当严格的。解决这个问题的一种方法是ESI - 但这需要对所涉及的任何人都有高技术水平的技术 - 并试图限制人们做他们不应该做的事情是相当困难的。
另一种方法是提供一组html片段(应该包含匹配的标签,除了类之外没有位置/字体信息),并让客户提供一个HTML页面,其中包含一组插入内容的占位符,例如客户提供:
<html>
<title>{%PAGE_TITLE%}</title>
<link rel="stylesheet" href="{%STANDARD_CSS%}">
<link rel="stylesheet" href="{%CUSTOMER_CSS%}">
<script src="{%STANDARD_JS%}"></script>
....
另一种方法是为客户提供在线通过网络编辑器。您可能希望查看一些可用的mash-up工具,例如: Radria
HTH
下进行。
答案 1 :(得分:1)
我想,如果您只想更改图片,颜色,字体,div放置等,您可以让客户编辑css文件,同时解决您的安全问题。
答案 2 :(得分:1)
您可能会发现查看TinyButStrong模板引擎很有帮助。 TBS与大多数其他模板引擎的不同之处在于它不会尝试在模板中实现额外的脚本语言,而是使用占位符系统以及与方括号之间的HTML代码完全分离的属性,例如
[blk.myfieldname;block=tr]
这使得系统非常容易与Dreamweaver等WYSIWYG工具一起使用,因为设计人员很容易看到PHP依赖代码在模板中的位置 - 基本上'不接触方块内的任何内容括号
虽然与自己的情况并不完全相同,但我已经完成了几个项目,我已经完成了基本布局完全正常运行的页面,然后将HTML模板(+ css)交给后来修改过的设计师他们为最终的网站。由于TBS提供的代码和占位符变量明显分离,因此几乎不会误入歧途。缺少任何模板脚本语言也意味着您的安全问题得到了更多控制。