【问题标题】:How to implement HTTP 1.0 / 1.1 in ASP.NET如何在 ASP.NET 中实现 HTTP 1.0 / 1.1
【发布时间】:2011-10-31 14:23:10
【问题描述】:

我想知道在 ASP.NET 中实现以下内容的最佳方法。我从来没有使用过这些指令,所以如果你能给我一个示例代码,那真的很有帮助。

  1. HTTP/1.0 Pragma 标头
  2. HTTP/1.1 缓存 - 控制标头
  3. 回溯过期标题

【问题讨论】:

  • ASP.NET 托管在 IIS 中,它已经实现了 HTTP 1.0 和 1.1 及其与缓存相关的 HTTP 标头。什么是你试图做的却不起作用?
  • 我在哪里可以在 IIS 中验证它?在我们开发的网站上进行了安全评估,建议如下: HTTP/1.0 Pragma 标头未使用,HTTP:/1.1 缓存 - 控制标头设置为私有,最后 BackDated expires 标头未使用或设置为-1。我在哪里可以验证这些项目。我是 ASP.NET 的新手,尤其是这些功能。请帮帮我。谢谢,

标签: asp.net .net network-programming http-1.1 http-1.0


【解决方案1】:

正如您在问题中提到的,它们只是 HTTP 标头。其中一些标头,例如 Cache-Control 是随 HTTP v1.1 引入的。自 HTTP 1.0 (Pragma) 等以来引入了其他的。

您需要做的就是通过Response.AddHeader("Key","value");将它们添加到您的响应中

例如:

Response.AddHeader("Cache-Control","public");

更新现在您提供了更多详细信息...

我没有特别发现在您的回复中不设置这些标头的任何安全问题。根据审计公司的说法,没有缓存页面有什么问题?如果有的话,通过不允许浏览器缓存您的网页,您的网站会更安全

更新 2 在标记上定义编译指示标题的一种方法是:

<meta http-equiv="pragma" content="no-cache">

就在aspx 页面的开头&lt;head&gt; 元素之后。对于所有其他标题也是如此。

【讨论】:

  • 感谢 lcarus,但我不想接触后面的代码。有没有办法在整个网站范围内实现它?喜欢使用 web.config 吗?之类的。
  • @RAHULKATE 是的,您可以直接将它们添加到标记中。但同样,从安全的角度来看,我强烈反对设置它们是个好主意。大多数金融机构在其网站的受保护区域禁用缓存并非毫无意义。
  • @RAHULKATE 我希望你的公司没有被这家公司/个人审计:serverfault.com/questions/293217/…
  • 不,不是那家公司。所以,我的理解是添加这些标题的最安全的方法是在后面的代码中。不过,如何添加 Pragma 标头?你能给我一个小例子来添加 http/1.0 Pragma 标头吗?
  • @lcarus,我肯定会在周末阅读它。它是一个大线程,前言绝对是有趣的。以纯文本形式提供用户名和密码???这是最大的安全威胁....
猜你喜欢
  • 2010-09-19
  • 1970-01-01
  • 2013-11-01
  • 2017-03-13
  • 2011-02-15
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多