使用PHP安全使用动态HTML样式表?

时间:2010-10-12 15:50:28

标签: php html css

我已经阅读了使用PHP的预处理器允许动态HTML样式表的技术,但是我想知道这个tecnique是多么安全,如果出于任何原因不鼓励它。

例如,而不是使用典型的:

 <link rel="stylesheet" type="text/css" href="http:mysite.com/style.css/>

我可以使用:

 <link rel="stylesheet" type="text/css" href="http:mysite.com/style.php/>

您怎么看?

6 个答案:

答案 0 :(得分:5)

完全没问题。

我建议在PHP中设置以下标题:

标题(“Content-Type:text / css”);

答案 1 :(得分:3)

如果您可以使用.htaccess文件,可以将其设置为使用以下方法将* .css文件解析为PHP:

AddHandler application/x-httpd-php .css

然后,您可以直接在* .css文件中使用PHP。

请务必同时将其他人提及的header类型设置为text/css

header('Content-type: text/css');

答案 2 :(得分:2)

它与您在style.php中的代码一样安全。

答案 3 :(得分:1)

是的,您可以使用PHP生成样式表。确保通过发送指定媒体类型和字符编码的适当Content-Type值将输出正确地声明为CSS。

但请注意,每次请求生成样式表都需要额外的时间和资源。因此,您应该添加某种缓存机制(静态文件和HTTP caching)以减少服务器负载甚至不必要的请求。

答案 4 :(得分:1)

正如其他人所提到的,PHP可用于输出任何类型的文本。因此输出动态CSS(甚至动态JavaScript)不是问题。请注意,通过执行此操作会增加服务器负载。服务器必须启动PHP引擎才能提供原本简单的静态.css文件。

答案 5 :(得分:0)

你可以用PHP(以及其他东西)渲染任何类型的文本输出,包括CSS,只需确保给出正确的标题header('Content-Type: text/css; charset=iso-8859-1');(或任何其他字符集)。

但说实话,我想不出情况是否有必要以这种方式使用动态样式表。