我有一个应用程序,它首先作为 iPhone 应用程序存在,现在作为 Android 应用程序存在。其中一个功能是加载一个网页,该网页通过将字符串作为 Referer 传递来绕过安全登录。iPhone的代码如下 -
NSMutableURLRequest *request = [NSMutableURLRequest new];
[request setValue:@"http://myweb.com/" forHTTPHeaderField:@"referer"];
[request setURL:[NSURL URLWithString:@"http://www.theirweb.com/meetings/meetings.plx?CID=TEST2012&O=Generic&Key=4s6p2wz9"]];
[htmlDoc loadRequest:request];
Run Code Online (Sandbox Code Playgroud)
我在我的 Android 应用程序中使用的代码是 -
WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl("http://www.theirweb.com/meetings/meetings.plx?CID=TEST2012&O=Generic&Key=4s6p2wz9");
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,访问被拒绝,因为我没有将请求作为“Referer”发送。我怎样才能在我的 Android 代码中做到这一点?
有没有可靠的方法来确定用户在ASP.NET应用程序中的来源?我们有一个从两个不同位置链接的Web应用程序.这两个链接位于不同的域上,他们需要在此应用程序中指定某些用户权限.这是我到目前为止所尝试的...
使用Request.UrlReferrer(这是Referer HTTP标头).这总是返回一个空字符串.我相信这是因为超链接使用Javascript来启动弹出窗口.根据我的研究,用户代理在标准超链接上提供此HTTP标头.Javascript弹出窗口是一个不同的故事(显然).
一个简单的查询字符串,用于指示引用者.这不是一个真正的选择,因为我们需要一些不容易绕过的东西(更安全).
有任何想法吗?据我所知,在宏伟的计划中,这可能会有更好的整体设计/结构.请不要发布答案,建议我重新设计所有内容,因为这不是一个选项.
我有一个电子邮件脚本,可以通过链接向Yahoo或Gmail发送邮件,这个链接会在点击时返回到我的网站.
我需要从Yahoo或Gmail获取HTTP_REFERER.在我的网站我有
echo $ _SERVER ["HTTP_REFERER"];
期待能够回归的东西.但它空洞.
我需要获取用户向我的服务器发送 ajax 请求的完整域,并且它应该有点安全。这
$_SERVER['HTTP_REFERER']
Run Code Online (Sandbox Code Playgroud)
返回空白。我应该使用什么功能?提前致谢。
怎么知道,谁POST向我的服务器发出了请求?
其他服务器POST向我的服务器发出请求API -> My server查找谁发出此请求.( 主机名 )
假设我有两页page1.php,page2.php并且我只想page2.php在它是重定向表单时显示page1.php并且我将此代码插入到page2.php
if($_SERVER['HTTP_REFERER'] == "page1.php")
{
//keep displaying page2.php
}else{
//if it is not redirected from page1.php
header('Location:page1.php')
//redirect the user back to page1.php
}
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常,直到我有一个表单和一个提交按钮,page2.php当点击提交按钮时页面刷新,这意味着HTTP_REFERER将更改为page2.php所以我if statement失败了,它让我回到page1.php我不希望这种情况发生。有什么办法可以防止这种情况发生吗?
提前致谢。
在阅读我的问题之前,请注意:我知道 HTTP_REFERER 可以在客户端浏览器中被欺骗或禁用。我不关心我的用例,而且我正在测试的浏览器肯定会传递引用信息。
我的问题是这样的:
我创建一个名为 page1.php 的文件:
<?php
header("Location: page2.php");
Run Code Online (Sandbox Code Playgroud)
我创建第二个文件,名为 page2.php:
<?php
echo "Referred by \"" . $_SERVER['HTTP_REFERER'] . "\"";
Run Code Online (Sandbox Code Playgroud)
然后从我的客户端浏览器调用:
我期望 page2.php 的结果输出为:
但它显示没有引用信息,如下所示:
由......推荐 ””
谁能告诉我为什么引用者为空?
非常感谢!
我正在尝试进行退出页面重定向,主要目的是隐藏确切页面路径的 http 引用数据,
我将此代码用作 exit.php 页面:
<?php
/*
* Sets the HTTP headers to redirect the user to a different page
* along with settings the HTTP status code to 307 Temporary Redirect
*/
function redirect($url) {
header("Location: {$url}", true, 307);
}
/*
* Checks if the URL is valid and uses the HTTP or HTTPS scheme.
*/
function valid_url($url) {
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED|FILTER_FLAG_HOST_REQUIRED) === false) {
return false;
}
$scheme = parse_url($url, PHP_URL_SCHEME);
if($scheme !== "http" && $scheme !== …Run Code Online (Sandbox Code Playgroud) <?php
$camefrom =$_SERVER['HTTP_REFERER'];
if ((substr($camefrom,0,26) == "http://www.fromperson.com")
header( 'Location: http://toperson.com' ) ;
?>
Run Code Online (Sandbox Code Playgroud)
如果请求来自www.from.com,我需要重定向到www.to.com.此代码位于www.thridperson.com/index.php
$ camefrom总是空的.
我已经读过$ _SERVER ['HTTP_REFERER']不可靠.有没有其他方法来执行此重定向?
注意:我已经失去了访问旧域即fromperson.com的权限.所以,我不能改变这种重定向逻辑,它必须以这种方式完成,它只能在thirdperson.com/index/php中完成
JSP1链接到JSP2.
JSP2调用一个servlet,它执行一些操作并以以下结尾:
response.sendRedirect(request.getHeader("referer"));
return;
Run Code Online (Sandbox Code Playgroud)
此时我又回到了JSP2.问题是从那里按下浏览器后退按钮,页面只是重新加载自己而不是返回到JSP1.这是正确的,因为sendRedirect会在历史记录中添加一个条目.
但是我想回到JSP1.有小费吗?