我正在使用xsendfile和我的Rails 3应用程序遇到问题.
我使用capistrano来管理部署,在每个版本中,都有一个指向shared/assets目录的符号链接(例如/ var/www/site/releases/1234/assets =>/var/www/site/shared/assets ).问题是XSendFile似乎没有遵循符号链接.在我的apache日志中,我看到以下错误:
The given path was above the root path: xsendfile: unable to find file: /var/www/site/releases/20110406205607/assets/pdfs/2/original/test.pdf
Run Code Online (Sandbox Code Playgroud)
我将XSendFilePath配置设置为
XSendFilePath /var/www/site/shared/assets
Run Code Online (Sandbox Code Playgroud)
如果我将配置切换到:
XSendFilePath /var/www/site/releases
Run Code Online (Sandbox Code Playgroud)
一切正常.所以我有几个问题:
1)有没有办法让XSendFilePath遵循符号链接?
2)将XSendFilePath设置为我的发布版dir是否存在安全风险?换句话说,我是否打开了对所有目录的访问权限?
我正试图XMLHttpRequest 从一个网络工作者中做出一个交叉起源.设置如下:
example.coms3.amazon.comAccess-Control-Allow-Origin标头进行响应代码如下:
var xhr = new XMLHttpRequest();
//this will redirect to 'https://s3.amazon.com/...'
xhr.open('GET', 'https://example.com/document/1234/download');
xhr.send(null);
Run Code Online (Sandbox Code Playgroud)
从主JS文件和Web worker调用时,此代码都正确地遵循重定向.
只有从主JS文件调用时,此代码才会正确地遵循重定向.从Web worker调用时,请求将中止而不会显示错误或日志消息.
可以通过编辑浏览器安全设置并启用"跨域访问数据源"来完成此工作,但期望用户这样做是不可行的.