我的控制器上有一些POST动作,它们来自一对GET动作.验证失败时,我想呈现POST来自的操作的视图.例如:
〜/ accounts POST到〜/ accounts/disable - 渲染验证错误的"索引"视图〜/ accounts/profile POST到〜/ accounts/disable - 渲染验证错误的"profile"视图
我可以从服务器变量中获取referer(sic)并解析它以找出操作,但是希望有一些内置的内容可以实现我想要的,或者其他人已经完成了我可以做到的事情.
看起来ControllerContext.RouteData属性只有当前请求的信息,而不是引用(sic)请求......?
我正在使用ASP.NET MVC测试版.
如果使用javascript将用户重定向到新网页location.href = <url>,目标Web服务器会看到哪些REFERER标头?
我有一个实现 OpenID Connect 客户端的 HTTP 服务器。OpenID Connect 协议涉及许多重定向,其中之一给我带来了麻烦,可能是由于 Referer 标头的存在。Firefox、Chrome 和 IE 都会出现此问题。
我创建了一个简单的 OpenID Connect Provider 实现用于测试,一切正常。但使用 salesforce.com 进行测试时,步骤 4 中的最终重定向存在问题。使用 salesforce.com 时,最终请求不包含 Cookie 标头。
使用我的 OpenID Connect 提供商进行测试
步骤 4 中发送到用户浏览器的响应:
HTTP/1.1 302 Found
Set-Cookie: session=c925f5006beb15cab779b292fe37e727; path=/; secure; HttpOnly
Location: https://localhost:21201/targetService
Content-Type: text/html; charset=UTF-8
Content-Length: 75
Run Code Online (Sandbox Code Playgroud)
浏览器返回:
GET /targetService HTTP/1.1
Host: localhost:21201
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, …Run Code Online (Sandbox Code Playgroud) 我想使用谷歌分析为我的应用程序提供track install referer.
我不想使用跟踪网页浏览量和事件功能,只能安装.
所以我在我的应用程序中添加了sdk jar,将这些行添加到清单中:
<receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
并发布应用程序.
但怎么能看到统计数据?我从未输入我的UA-xxxxxxx id.
对于网页浏览量和事件跟踪,它在这里:
tracker.start("UA-YOUR-ACCOUNT-HERE", this);
Run Code Online (Sandbox Code Playgroud)
但正如自述文件所说:( 注意:如果使用引荐跟踪,请不要在Application onCreate()方法中启动GoogleAnalyticsTracker).
但是有了引用者我在哪里可以放入我的身份证明?
什么是在谷歌分析控制台中观看的网址?
谢谢
我想做一个典型的事情,你确保一个引用者标题与你的主机匹配,使用htaccess.但是我想在不对域名进行硬编码的情况下这样做,因此htaccess代码可以很容易地在许多站点中重用.
我知道这是典型的做法.想象一下,我在WWW.example.com上有一个主服务器,在IMG.example.com上有一个图像服务器:
RewriteCond %{HTTP_HOST} !^(www\.)
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !https?://(([^\.]+)\.)?example\.com/ [NC]
RewriteRule DO SOMETHING HERE [L]
Run Code Online (Sandbox Code Playgroud)
但是,如果不将'example.com'硬编码到Rewrite条件下,我怎么能以某种方式做到这一点?我想在某种程度上尝试在引用者重写条件中使用%{HTTP_HOST},但我不确定如何匹配最后一个/域部分并将其置于其中.也许有一些方法我可以匹配主机,将结果放入变量,然后能够在下一个RewriteCond线上使用该变量?
我有点失落.谢谢你的帮助!
使用PHP,你如何安全的身份验证的API调用,跨域,用以下标准:
一些背景:请在回答之前仔细阅读......
我的Web应用程序将通过下面的调用在客户端的网站上显示一个javascript小部件.因此,我们讨论的是对要提供的脚本进行跨域身份验证,但仅针对真正的客户端和仅针对给定的URL!
目前,CLIENT的网站可以通过单行javascript包含小部件.
示例client-website.com/page/with/my-widget
<head>
...
<script src="//ws.my-webappserver.com/little-widget/?key=api_key"></script>
...
</head>
Run Code Online (Sandbox Code Playgroud)
现在,实际上这不是直接调用javascript而是在我的远程服务器上的PHP脚本,它位于实际的javascript前面,用于进行一些身份验证.
上面调用背后的PHP脚本首先执行此操作:
这是简化的,但实质上服务器看起来像:
if ($_SERVER['HTTP_REFERER'] !== "http://client-website.com/page/with/my-widget")
&& $_REQUEST["Key"] == "the_long_api_key") {
header("Content-type: application/x-javascript");
echo file_get_contents($thewidgetJS_in_secret_location_on_server);
} else {
//pretend to be a 404 page not found or some funky thing like that
}
Run Code Online (Sandbox Code Playgroud)
***小部件只允许在某些网站/页面上运行
现在,问题出在这里:
还有一点障碍:我无法告诉客户将密钥粘贴在服务器上的php脚本中,因为它们可以运行任何服务器端语言!
那么如何才能使我的Web服务安全并且只能由给定的域/页访问?
任何帮助将非常感激!
ps:小部件上传到一种下拉框 - 所以安全性在这里是关键!
我有一个表格,我想嵌入一个网站,这是在我的白名单上.
试图嵌入它的其他网站应该只获得一个错误页面.
<iframe src="https://domain.tld/getForm.php?embed=1&formId=123456"></iframe>
Run Code Online (Sandbox Code Playgroud)
我希望我可以用$_SERVER['HTTP_REFERER']在getForm.php检查embeding网站,但它不工作.
有谁知道最佳做法或任何解决方法?
提前致谢!
我正在尝试编辑我的 S3 存储桶配置,以便第 3 方站点无法链接到其中的内容。还有一个额外的好处是他们只能访问我域中的内容,而不是补充 s3bucket.amazon-east.amazonaws.com 或类似的东西。
该文档有一个完全适用于此的示例,但是当我在下面为我的网站复制/粘贴/修改时它不起作用?我仍然收到 403 错误。当我只取出条件部分时,它允许完全访问,所以只有引用部分有问题。
这是一段如此短的代码,我正在用头撞墙……希望第二组眼睛可以启发我了解我遗漏的可能很明显的东西?
或者,这可能没有任何问题,并且其他地方可能还有我尚未设置/考虑的其他配置?
谢谢阅读。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "fml",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::www.mysite.com/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://mysite.com/*",
"http://www.mysite.com/*"
]
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud) 我正在使用带有Interceptor扩展的Postman来执行POST请求.
我的请求包含一个Origin头,以避免CORS错误.的Content-Type就是application/x-www-form-urlencoded和我收到的JSON,所以我不得不添加Accept header与价值application/json.
我调用的API也要我添加Referer标头,所以我这样做.当我发送请求时,Accept header它不在原始请求中.当我删除时Referer header,Accept header显示在原始请求中.
这是Postman/Interceptor中的一个错误,还是我在针对发送http请求的"规则"做些什么?
我们正在开发一个Android应用程序。我们想跟踪我们的能力。基本上,我们想知道用户是从哪里到达Google Play的,方法是与合作伙伴在Google Play URL中放置一个单词,然后在应用程序中检索该单词,然后将其发送到我们的服务器。
我们已经在应用程序中安装了Google Analytics(分析),我们可以在Google统计板上跟踪用户在应用程序中的操作。但是,我们如何使用它来实现我们真正想要的呢?我们确实需要用该词链接用户数据库。
我听说过INSTALL_REFERER,但我真的不知道如何使用它。
referer ×10
android ×2
http ×2
javascript ×2
redirect ×2
.htaccess ×1
amazon-s3 ×1
asp.net-mvc ×1
bucket ×1
cookies ×1
cross-domain ×1
forms ×1
hotlinking ×1
html ×1
iframe ×1
install ×1
interceptor ×1
json ×1
php ×1
policy ×1
postman ×1
referrer ×1
rewrite ×1
routing ×1
widget ×1