告诉Apache服务器将.js和.css文件作为PHP处理是否安全?

根据我在这个问题中看到的答案: 链接

我想知道,这是一个安全的事情吗?

假设我实现了这一点,一个页面被请求有一些JS和CSS文件链接到它。 文本文件是简单地发送还是服务器首先parsing它们? 现在没有服务器来testing它。

另外,这是一种常用的工作方式吗? 我在考虑设置你的文件,以便在CSS和JavaScript的基础上总是能够根据用户input获得正确的实现。

对于动态的CSS和Javascript,你不必总是把它们放在.js或.css文件中。 你可以做什么实际上是链接到一个PHP脚本生成它们,所有其他.js和.css文件是不是动态的PHP不分析。 一般来说,通过应用程序服务器/动态解析来运行一切,特别是媒体文件是一个坏主意,除非绝对必要(同样适用于.net,RoR,Django等)。

<link rel="stylesheet" type="text/css" href="mycss.css"/> 

浏览器对待如下:

 <link rel="stylesheet" type="text/css" href="mydynamiccss.php?param=somevalue" /> // this one would be dynamic on params, location or something else maybe colors etc. 

你也可以采取动态的JS或CSS,并通过重写推它,所以它确实有一个正确的扩展名,但它实际上是一个动态的PHP文件,如果你不希望你的链接和脚本标签有不正确的扩展名。

这不是不安全的,除非你允许用户上传css / js文件。

默认情况下,Apache将.js和.css文件视为静态文件,这意味着它不会执行任何额外的处理,只是发送它们。

你可以配置apache来通过某种程序(比如PHP)来汇集任何扩展名的文件,但是对于图像,css和其他静态文件来说是不常见的。

一个很大的问题就是它会严重阻碍Apache引导缓存头的能力 – 它将静态文件视为比php文件更容易缓存。

我绝对不会这样做。 我也可能会质疑为什么他们自动生成如此大量的JavaScript。 这个答案作为定制javascript行为的方法更加可行。

只要链接的.css和.js文件位于不同的服务器上,它应该是安全的。 所有你告诉Apache要做的就是将.css和.js文件作为php来处理它所服务的文件。