问题标签 [server-variables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - HTTP_COOKIE IIS 服务器变量因未知原因到期
简短描述:IIS 服务器变量“HTTP_COOKIE”的到期时间似乎不受任何超时变量的控制,我想知道是什么原因造成的。我已经尝试修改我可以在 IIS 中看到的所有超时/到期控制值,并且在大约 20-30 分钟内没有任何改变。
详情:
我们有一个带有 C++ 后端的应用程序,它使用 IIS 服务器变量“HTTP_COOKIE”来存储状态数据,最重要的是该用户当前会话的会话 ID(GUID,用于问题的其余部分)。要求任何用户只能登录一次,而 GUID 是用于强制执行此操作的数据之一 - 每次用户登录时,都会刷新 GUID。每次用户完成一项操作时,都会根据最近为该用户创建的 GUID 检查本地存储在选项卡 sessionStorage 中的 GUID(即,用户首次登录该选项卡时的值)。如果它们不匹配,则用户将被踢出该选项卡上的应用程序。
现在,问题在于有两种情况会刷新 GUID:当用户登录时,以及当应用程序无法在其内存中找到现有的 GUID 或 HTTP_COOKIE 字符串时。案例 1 很好——这就是我们想要的。情况 2 很烦人,因为 IIS 设置中似乎有一些东西导致 HTTP_COOKIE 在 20-30 分钟后被清除(我还没有确定它到底有多长)。我们看了看,我们发现很多超时都可能导致这种情况,但是将每个超时修改为 1 分钟,重置 IIS 并再次尝试对超时没有任何影响:
- 站点=>默认网站=>会话状态=>Cookie 设置=>超时
- 站点=>默认网站=>ASP=>会话属性=>超时
- 站点=>默认网站=>Allstate 应用程序=>ASP=>会话属性=>超时
唯一有所作为的是:
- 应用程序池 => 高级设置 => 进程模型 => 空闲超时
但这是因为它在另一个超时之前启动并重置所有内容,而不是它是导致我们想要删除的那个的原因。在我们的系统中,此超时通常被禁用(根据 MSDN 指南设置为 0 分钟)。
我已经浏览了我能想到的所有内容 - 这绝对是一个 IIS 问题,因为无论是否过期,服务器端代码都在执行完全相同的任务,唯一的区别是 HTTP_COOKIE 字符串在上述空闲时间之后消失了,因此它会生成一个新的 GUID,因为它找不到现有的 GUID。事件日志中没有错误表明某些内容已用完空间或以其他方式失败导致重置。
我要问的是是否有人知道其他可以控制它的东西,以及可以在哪里禁用/修改为更大的值。如果您知道这是什么并且知道它是不可能绕过的,那么知道这也是有用的。如果是这种情况,如果有人对存储用户会话的 GUID 的更好方法提出建议,他们也将不胜感激!
提前致谢。
PS 如果涉及到系统的完全重写,我并不是在寻找更好的方法来处理这个问题——现有的系统过于复杂,但应用程序已经过时(约 15 年),并且包含了很多我们认为过时的方法。我没有得到资源来整理,所以我唯一的选择就是按原样使用系统。
redirect - 如何在 ASP 中使用 Query_string 服务器变量编写 Response.redirect
我正在尝试将用户重定向到相当于桌面页面的移动页面。现在我只能让他们到主页。
我想使用其他正确的变量重定向到移动页面。所以重定向响应应该是"/mobile.asp?m=here"
来自"/home.asp?m=here"
页面和"/mobile.asp?m=there"
来自"/home.asp?m=there"
等。
我可以获取变量,<% Response.Write(Request.ServerVariables("QUERY_STRING")) %>
但是当我尝试连接重定向时,我的语法必须关闭
帮助不大。谢谢。
php - PHP - 用于收集请求域的 HTTP_REFERER 的替代方案?
我有一个简单的跟踪像素,用于验证用户帐户:
可通过以下方式访问:
它通常按预期工作。
这个想法是一些用户拥有自己的域,并希望“声明”它们,并验证他们是真正的所有者。我们还有其他验证选项(即 META 标签),但这是最简单的,对于最基本的用户 - 只需复制并粘贴透明图像,Bob 就是你的阿姨。
包含请求域的唯一$_SERVER
变量是HTTP_REFERER
,但即使是最简单的 Google 搜索也会返回大量讨论该值的不可靠性和易欺骗性的文章。
'HTTP_REFERER'
将用户代理引向当前页面的页面地址(如果有)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。简而言之,它不能真正被信任。
并且有无数的 SO 帖子讨论相同的问题。
就目前而言,一个半胜任的计算机猴子可能会欺骗他们不正确的域以显示为正确的域,然后将其<img>
放在他们的页面上。我的 PHP 脚本会认为一切都是 honkey-dory,并通过所有条件。
没有布埃诺!呸!
是否有替代方法HTTP_REFERER
,我可以使用它来验证请求域?什么是安全的,最好是必需的?
iis - 使用域用户 iis httpModule 进行身份验证时替换 REMOTE_USER 服务器变量中的反斜杠
我正在使用域帐户在 IIS 中运行的 CRM 进行身份验证。我想替换 REMOTE_USER 服务器变量中的反斜杠以返回而不是 Domain\User Domain_User 或类似的东西,因为当反斜杠返回到数据库时它会引发错误。我尝试编写 HTTPModule,但它在此行返回“此平台不支持操作”错误:
我正在使用的代码如下:
我也尝试将代码放入 BeginRequest 但没有运气。有没有办法做到这一点?
asp.net-core - 如何在 AspnetCore 1.0 中访问 ServerVariables
在现有的 .Net 网站中,服务器变量通过以下方式访问
如何访问 AspnetCore 1.0 Web 应用程序中的 ServerVariables?
在控制器内部调试时,this.HttpContext.Features
不包含IServerVariablesFeature
.
php - php > remote_addr 返回一个非 ip 的结果
在下面的这段代码中,
我最终得到了这样的IP:
有人可以解释一下吗?不应该所有的IP都是XXX.XXX.XXX.XXX的形式吗?
mysql - phpmyadmin 服务器变量和会话值
我要使用utf8mb4
. 我的一些变量也必须是这里提到的 utf8mb4 。我从 phpmyadminVariables
菜单设置它们。但是对 utf8mb4 进行了一些更改,但它的会话值仍然是uft8
.
当我运行这个命令时:
那给我看 utf8,而不是 utf8mb4。任何想法?
编辑:当我将 a 变量设置为 时utf8
,会话值消失。
php - JetBrains PhpStorm 无法解析服务器变量?
以下行...
正在产生 IDE 错误:
找不到路径“/var/www/projectName$us_url_rootusers/includes/header.php”。
文件的实际路径是
/var/www/projectName/public_html/users/includes/header.php
变量定义为:
这是我设置的部署选项...
类型:Local or mounted folder
上传/下载项目文件:/var/www/projectName
Web 服务器根 URL:http://projectName
本地路径:/var/www/projectName/public_html
服务器上的部署路径:/
服务器上的网络路径:/
php - 在 PHP 7 中是否添加了一些服务器变量并且删除了很少的服务器变量?
我正在从w3schools 的 PHP教程中学习PHP 。我正在使用PHP 7.0.13
在学习的过程中,我遇到了Global Variables - Superglobals的概念。
注意:请到上面的链接查看服务器变量列表。
在此页面上,我尝试了所有服务器变量,但收到以下几个服务器变量的未定义索引通知:
$_SERVER['HTTP_ACCEPT_CHARSET']
$_SERVER['HTTPS']
$_SERVER['REMOTE_HOST']
$_SERVER['SCRIPT_URI']
对于上述每个变量,我尝试了以下代码。例如 :
除此之外,$_SERVRER
当我尝试执行代码时,我还观察到数组中几乎没有新的服务器变量print_r($_SERVER);
所以,我的问题是 PHP5 中存在的一些旧服务器变量在 PHP7 中已被删除,而新添加的其他变量很少?
我也尝试检查PHP 文档,但我也对此一无所知。
所以,请有人请澄清我的疑问。
谢谢。
php - PHP 确定主机安全可靠
对于依赖于主机 url 的脚本,我需要确定主机以及它是通过 HTTP 协议还是 HTTPS 协议进行连接。
例如,如果我连接到http://example.com,我想检索http和example.com
我当然可以使用$_SERVER
变量。但是,我在互联网上读到它们很容易被客户更改。因此,他们“可能”破坏了我的剧本。所以, $_SERVER['HTTP_HOST']
, $_SERVER['SERVER_NAME']
, 等变得不可靠了,我猜?
有没有更好的选择来解决这个问题,而不是检查两个 $_SERVER 变量的相同值,这仍然不可靠?
感谢您的回答