use*_*841 4 php security templates
我正在寻找用于php的模板系统,我开始相信纯PHP代码似乎是我想要使用的解决方案.
我是唯一的开发人员,所以没有设计师需要一个神经紧张的竞技场工作.像smarty这样的模板引擎似乎遭受了"内部平台效应".如果我坚持使用良好实践(预先计算的值,仅使用foreach),我认为这将有效.
我的目标是为每个页面共享的html字符串提供单个源.我的想法是,通过include访问的单独的php文件是实现这一目标的好方法.
但是,我担心这可能会给网站带来安全隐患 - 我现在想不出任何具体内容,但是有人可以猜出模板的名称并直接请求它,也许会暴露他们需要的东西'看.(我想我可以检查它本身是否是请求.)我有预感这可能是坏事,所以我不想继续这样做,创造我担心会发生的事情,然后扔掉那个工作.
如果单独的文件不是最好的主意,我还应该使用什么来基本上存储整个网站的字符串?包含中的字符串常量,我可以在sprintf()中使用?一个从页面特定的html部分的参数返回html字符串的函数?
不应通过HTTP提供的文件应存储在一个目录中,您的Web服务器将不允许将任何内容(至少不是PHP)提供给用户.
两种可能性:
DocumentRoot这种"未提供服务"的文件通常包括以下内容:
第一个解决方案:您的目录可能如下所示:
data/
i18n/i18n/your-file-here.phplibrary/www/ < - 这是Apache的DocumentRoot
index.phpanother-php-file.php
对于第二个解决方案,只需禁用对包含"数据"或"库"文件的目录的访问,并在其中添加一个.htaccess (如果您的Web服务器是Apache)文件,其中包含类似的内容
Deny From All
Run Code Online (Sandbox Code Playgroud)
有了这个,Apache将不允许任何人通过HTTP直接访问该目录中的文件,但是您的可执行PHP脚本(在另一个目录中)仍然可以包含它们.