git instaweb在我的存储库中运行会打开一个页面,上面写着"403 Forbidden - 找不到任何项目".我错过了什么?
我正在尝试在我的Web主机(Dreamhost)上安装Recess PHP框架.它包括以下.htaccess:
Options FollowSymLinks
RewriteEngine On
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ bootstrap.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)
这在我的机器上工作正常(Windows 7上的XAMPP 1.7.7),但在我的网络主机上的某些文件上导致403 Forbidden错误.所有目录权限都设置为755,所有文件权限都设置为644.PHP在拥有文件的同一用户下运行.
以下URL导致403s:
以下网址不是:
什么会导致这种情况发生?
我有一个奇怪的错误,并想知道是否有其他人可以想到一个原因.
情景: -
这种情况发生在Firefox和Chrome中,我还没有尝试过Internet Exploder.
我只在我的机器上再次发布了这个问题,而在与测试人员的Skype通话中,他们每次都可以重现它.它们基于印度,并且与我们的测试站点的连接速度要慢得多.这可能是一个原因吗?
我看到了一个相关的问题,但这是由Squid代理引起的,我不是代理的背后(虽然测试人员可能是).
我不喜欢添加缓存控制头,因为浏览器不应该根据HTTP规范缓存403,但我需要保证,当用户登录时,他们会获得正确的内容.
任何关于可能是什么原因的想法将不胜感激.在此期间,我将向转向页面添加一些缓存控制标头,以查看是否有帮助.
firefox google-chrome http browser-cache http-status-code-403
我正在一个新的EC2实例上设置我的博客,因为当前托管它的服务器上的一个站点是DDoSed.我在使用nginx时遇到了一些麻烦,因为我可以看到所有页面都很好但索引上有403,或者看到索引但页面上有404(取决于我使用的配置)
这是我的nginx配置:
server {
listen 80;
server_name www.test.com;
server_name test.com;
root /www/blog;
include conf.d/wordpress/simple.conf;
}
Run Code Online (Sandbox Code Playgroud)
而simple.conf:
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = …Run Code Online (Sandbox Code Playgroud) 我正在尝试对S3 REST API执行HEAD对象请求但我仍然收到403 Forbidden错误,即使我在S3上具有必要权限的策略设置.响应主体是空的,所以我不认为它是一个签名问题.我已经尝试了几项政策变更,似乎没有任何改变.我能够正常PUT对象和DELETE对象,只是HEAD不起作用.
这是我的存储桶政策:
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam:: 999999999999:user/User"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::my-bucket"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::999999999999:user/User"
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:DeleteObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
更新:
正如迈克尔指出的那样,我的签名似乎是一个问题,尽管我没有看到什么.
def generate_url options={}
options[:action] = options[:action].to_s.upcase
options[:expires] ||= Time.now.to_i + 100
file_path = "/" + @bucket_name + "/" + options[:file_name] …Run Code Online (Sandbox Code Playgroud) 我正在制作一个语言学习网络应用程序,当你将鼠标悬停在单词上时,它会为你发音.我想访问Google Translate API的母语翻译.
我找到了这个资源,它提供http://translate.google.com/translate_tts了基本URL,tl目标语言和q查询字符串.
当我在浏览器中访问它时,这非常有用, http://translate.google.com/translate_tts?tl = zh-CN&q =你好,但我的应用的任何httprequests都会返回403 Forbidden错误.
localhost:~me $ wget" http://translate.google.com/translate_tts?ie=UTF-8&tl=en&q=hello+world "--2015-06-02 11:02:06-- http://翻译.google.com/translate_tts?ie = UTF-8&tl = en&q = hello + world 解析translate.google.com ... 173.194.123.38,173.194.123.36,173.194.123.32,...连接到translate.google.com | 173.194.123.38 |:80 ...连接.发送HTTP请求,等待响应... 403 Forbidden 2015-06-02 11:02:07错误403:禁止.
是否有一个正式的Google API,用于与传统Google Translate API的付款计划相关联的文字转语音,我还没有找到?或者是否有办法以get某种方式播放此音频?
javascript google-api text-to-speech google-translate http-status-code-403
我正在使用Spring MVC/Security 3.X.问题是,每当会话超时时,我在登录页面上获得403 ,其中Spring框架正在抛出"InvalidCsrfTokenException":
threw exception [org.springframework.security.web.csrf.InvalidCsrfTokenException: Invalid CSRF Token '7b4aefe9-6685-4c70-adf1-0d633680523a' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.] with root cause
org.springframework.security.web.csrf.InvalidCsrfTokenException: Invalid CSRF Token '7b4aefe9-6685-4c70-adf1-0d633680523a' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:119)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at …Run Code Online (Sandbox Code Playgroud) java csrf spring-security session-timeout http-status-code-403
我正在将我的应用程序与Xero集成,后者需要两个证书.我上传他们从帮助到Azure 此文章,但我仍然无法连接到Xero的API.我希望有人有将Xero合作伙伴应用程序与Azure Web App集成的经验.
我上传了两个pfx文件; 一个是自签名证书,另一个是Xero颁发的合作伙伴证书.后一个pfx文件包含两个证书; 一个Entrust商业私人子CA1(无论手段)和我的应用程序的唯一Entrust Id证书.
我使用以下代码通过其独特的指纹加载证书:
static X509Certificate2 GetCertificateFromStore(string thumbprint)
{
var store = new X509Store(StoreLocation.CurrentUser);
try
{
thumbprint = Regex.Replace(thumbprint, @"[^\da-zA-z]", string.Empty).ToUpper();
store.Open(OpenFlags.ReadOnly);
var certCollection = store.Certificates;
var currentCerts = certCollection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
var signingCert = currentCerts.Find(X509FindType.FindByThumbprint, thumbprint, false);
if (signingCert.Count == 0)
{
throw new Exception($"Could not find Xero SSL certificate. cert_name={thumbprint}");
}
return signingCert[0];
}
finally
{
store.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
这在本地工作正常,但在我的天蓝色网站上我收到403.7错误:
The page you are attempting to access requires your browser …Run Code Online (Sandbox Code Playgroud) 它似乎是一个已知的问题,关于这个主题存在很多问题,但是,我的情况非常奇怪.我有一个部署在tomcat 8.0.36上的简单Web应用程序.我已正确配置CORS:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
浏览器阻止了跨源请求:
请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" https://www.mytestpage.com "访问.响应具有HTTP状态代码403.
在tomcat日志文件中,我也看到403的响应代码.有趣的是,在跨源请求的情况下,我的应用程序的代码永远不会被执行.在到达我的申请之前,请求被阻止,并且立即发送403.我在tomcat面前没有apache,它是简单的tomcat.我尝试了很多东西,包括将原点列入白名单并指定允许的标题 - 没有任何帮助.我还尝试以编程方式设置标头,直到我发现从不执行跨源请求的代码.
UPD:结束点接受POST请求.这些POST请求作为XmlHttpRequests从JS片段发送.
有什么想法可以吗?
ps我可以成功获得相同的原始请求.
我一直在研究这个问题几个小时没有,仍然没有解决方案.如果你不明白我在标题中提出的问题,我会详细说明.我试图禁止从Apache访问某些样式表和脚本,但我只希望它在文件不存在时抛出403错误.
以下是我尝试过的一些例子:
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule (admin|staff)-?[a-zA-Z1-9]*\.(css|js|php)(.map)?$ - [F,L,NC]
Run Code Online (Sandbox Code Playgroud)
这不是出于某些奇怪的原因,不知道为什么.
此外,在我继续更多示例之前,我将解释我正在尝试使用正则表达式实现的目标:我正在使用版本控制,因此我无法确定管理员和员工之后会发生什么,所以我正在使用一个可选的字符类.它只影响css,js以及php扩展,以及css.map扩展.顺便说一句,如果你想知道为什么在正则表达式的字符类和admin | staff部分之间有一个短划线,那是因为我的版本控制工具用破折号分隔日期和文件名.万一这个信息将帮助你我使用的版本控制工具是Laravel Elixir.
更多例子:
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} -f
RewriteRedirect 403 (admin|staff)-?[a-zA-Z1-9]*\.(css|js|php)(.map)?$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRedirect 404 (admin|staff)-?[a-zA-Z1-9]*\.(css|js|php)(.map)?$
Run Code Online (Sandbox Code Playgroud)
在这个示例中,无论您放置哪个,它都会调用该错误代码.
我甚至尝试过使用该指令,但即使该文件不存在,它似乎也会被调用.
<FilesMatch "(admin|staff)-?[a-zA-Z1-9]*\.(css|js|php)(.map)?$">
deny from all
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
感谢您提供的任何帮助,出于某种原因,我似乎无法在网上找到任何关于此类事情的内容!
Covenor想要一些例子,所以他们在这里:
/anydirectory/admin-12d16m4.css
/anydirectory/staff.js
anydirectory/admin.php的
感谢Covenor,我已经部分解决了我的问题.这是我现在的代码:
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule (admin|staff)-?[a-zA-Z1-9]*\.(css|js|php)(.map)?$ - [F,L,NC]
Run Code Online (Sandbox Code Playgroud)
这适用于admin.css,admin.js,admin.css.map等文件,但是一旦我实现版本化文件,它就不会隐藏它们.以下是版本化文件名的示例:app-968b520079.css.即使我在我的正则表达式中找不到问题,它也没有隐藏它.
感谢您提供更多帮助.
感谢所有帮助过的人,问题已得到彻底解决.对于想要了解我使用的确切代码的人来说,这里是:
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule (admin|staff)-?[A-Za-z0-9]*(.min)?(?(-1)(css|js)|(css.map|css|js|php))$ - [F,L,NC]
Run Code Online (Sandbox Code Playgroud)
PS,我不确定是谁给予赏金,所以获得最多选票的人将得到赏金.