将在公共计算机或信息亭上使用的 ASP.Net Web 应用程序的安全注意事项

2023-12-28

我有一个无需身份验证即可在公共场所的计算机上使用的应用程序。这是一个简单的四页应用程序,允许用户申请结婚证。一些办公室将设有公共电脑亭,申请人可以在前往柜台前填写自己的信息。他们也可以在去办公室之前在家中这样做。我应该考虑哪些因素来确保用户无法访问前一个用户的输入?某些表单数据将包含敏感信息,例如出生日期、社会安全号码和母亲婚前姓名。

1.禁用自动完成

到目前为止,我已经在我的母版页表单标记中设置了 autocomplete=false 。

<form id="frmMain" runat="server" autocomplete="false">

2.禁用页面缓存

我还能够在 IE 和 FF 中禁用页面缓存,但无法在 Safari 和 Chrome 中执行此操作。有人知道窍门吗?点击后退按钮仍然会在 Safari 和 Chrome 中显示表单填充的数据。

// Disables page-caching in IE
Response.Cache.SetAllowResponseInBrowserHistory(false);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Expires = 0;

// HACK: fixes Firefoxes cache issue
Response.AddHeader("ETag", new Random().Next(1111111, 9999999).ToString());

3. 管理会话

我还在每个页面上实现了一个计时器,该计时器将在 n 分钟后终止会话。会话保存当前应用程序 ID,页面使用该 ID 加载先前输入的数据。他们可以通过单击按钮获得更多时间。当计时器到时,它会重定向回主页,我在主页中终止 Page_Load 中的会话。当用户单击“完成/提交”按钮时,我也会重定向到此页面。一旦会话被终止,通过 URL 导航到页面将永远不会加载以前的应用程序。它将被视为新的。

protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
     Session.Abandon();
}

4.我还应该做什么?

Your awesome suggestions/tips here

由于这是一个 Kiosk 应用程序,您需要确保浏览器配置为接受不缓存任何内容的请求。

上次我研究服务器端无缓存标头的有效性时,我意识到任何使用定制的、有缺陷的或不常见的浏览器的人都可能不会接受不缓存文档的请求。

您可能还想在某些页面(例如会话页面的某些结尾)上添加 javascript 后退按钮断路器和历史导航威慑,但不是所有页面,因为没有人喜欢后退按钮被破坏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将在公共计算机或信息亭上使用的 ASP.Net Web 应用程序的安全注意事项 的相关文章

  • 当我使用加盐 CRYPT_MD5 加密我的密码时,正在加密什么?

    对字符串使用 md5 总是会产生字母数字加密结果 即 没有符号 然而 当我使用 php crypt 函数 特别是带有盐的 CRYPT MD5 并且它已打开 我已经检查过 时 它返回的假定 md5 哈希看起来不像 md5 哈希 例如 如果我
  • .tostring() 保留前导零[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 转换对象
  • Web.config appSettings:复杂值

    Web config 的 appSettings 部分只能存储这样的简单字符串吗
  • 如何使用 WebAPI 处理图像

    问题 将图像发布 获取到我的服务有哪些不同的方法 我想我可以在 JSON 中使用 Base 64 文本 也可以保持原生二进制形式 我的理解是 通过将图像转换为文本 包大小会显着增加 如果我发送图像 从 Web 表单 从本机客户端 从另一个服
  • 如何在日历中选择多个日期并将其显示在标签中

    假设我有日历 并且我想选择多个日期并在标签中显示 我使用了以下代码 但它无法正常工作 请更正 lblMultipleDate Text Calendar1 SelectedDates 0 ToShortDateString Label2 T
  • Page.AsyncTimeout - 无休止的超时?

    I saw 一个例子 http www webreference com programming javascript rg30 index html of forever iframe实现 彗星模拟 所以我决定测试它 但添加了异步方法 这
  • 通过 CultureInfo 格式化字符串

    我想显示英镑符号和格式 0 00 即 45 00 4 10 我正在使用以下语句 td style text align center td 但它不起作用 问题是什么 谁能帮我 Use the Currency http msdn micro
  • OpenXML - 保护所有工作表

    我只能保护一张工作表 但是当我尝试保护 Excel 文档中的所有工作表时 我在尝试附加 SheetProtection 时收到错误 如果我理解正确 我必须在 SheetData 之后附加 SheetProtection 这是我的代码 She
  • 回发 Asp.Net 上的动态用户控件

    我创建了一个项目 user control 它有一个文本框 按钮等 它将有意收集用户想要的项目总数 我在 page load 上动态创建了几个 user control 实例 如果您单击项目数量的添加按钮 它将添加到会话变量中 但是 当用户
  • 登录代码示例已通过 SQL 注入被黑客攻击,尽管 mysql_real_escape_string...

    我使用 CodeIgniter 但在黑客攻击方面遇到了麻烦 是否可以对以下登录代码进行 SQL 注入 function process login username mysql real escape string this gt inpu
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • 算法 HmacPBESHA256 不可用

    因此 我编写了一些代码来获取 PEM 通过 bouncycastle 将其添加到 PKCS 密钥库 然后使用 java crypto 将 PKCS 密钥库值导入到 JKS 密钥库中 我发誓昨天我在执行这些步骤后成功通过了单元测试 但是今天早
  • 如何验证使用 php 上传的文件不包含可执行二进制文件?

    使用简单的 Firefox 插件 黑客可以更改他们想要上传的任何文件的 MIME 类型 绕过文件类型检查器 然后 黑客可以使用 GIMP 等程序将 php 脚本嵌入到图像 音频或任何其他文件的二进制数据中 我该如何检查并防止这种情况发生 您
  • iOS 解决方案仅当图像尚未使用 SDWebImage 缓存在内存中时才加载带有动画的图像

    我已经为这个问题苦苦挣扎了几天 以前我使用 AFNetworking 类别来加载和缓存图像 但它的回调中没有提供缓存类型 所以我过去常常在每个控制器中跟踪哪些图像已经加载 我浏览了 SDWebImage 它提供了我正在寻找的东西 SDIma
  • 有没有办法让 ValidationSummary 与客户端验证器一起使用?

    NET ValidationSummary 控件聚合来自回发时触发的验证器的错误消息 有没有某种方法可以让它也显示来自客户端验证器的错误消息 我正在解决的问题是 在长页面上 可能会单击提交按钮 导致某些客户端验证器失败 但永远不会看到错误消
  • .net dropdownlist对齐文本

    我正在尝试将 net 下拉列表中的文本向右对齐 使用 CssClass 我可以在 Firefox 中将文本向右对齐 IE 不会将文本右对齐 而是左对齐 我读到 IE 6 不支持这个 这是真的 我使用的是 IE7 但我的大多数用户将使用 IE
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 如何更改锁屏自定义文本(所有者信息)?

    我写了程序代码 String message This is test Settings System putString context getContentResolver Settings Secure LOCK PATTERN EN
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 允许 iframe 跨域链接到目标父框架

    我有 2 个域 域 1 上的一个页面使用 iframe 加载域 2 中的内容 如何允许来自domain2 iframe 内 的链接在domain1 的完整父框架中打开 我一直在关注IE和w3c的新沙箱属性 http www w3 org T

随机推荐

  • 如何将 16 位灰度图像写入 jpeg?

    我有每像素 16 位灰度BufferedImage由一系列短裤创建 private BufferedImage get16bitImage short pixels ColorModel colorModel new ComponentCo
  • 求子集的个数,剩余数异或等于0

    给定n个数 找到最小子集数 其中剩余数等于0 例如 1 1 3 4 5 结果等于 3 因为我们可以删除子集 1 3 有两种方式 或 3 4 5 我正在寻找比 O 2 n 蛮力更快的东西 让我们考虑一个大小为 n m 的动态规划表 其中 m
  • 销毁ARM模板部署创建的资源

    需要使用什么特定语法才能成功销毁由devenvironment下面代码中的部署组 上下文 运行以下命令时 将在 Azure 中创建资源集合 az deployment group create name devenvironment res
  • Django:如何在 Q() 语句中使用字符串作为关键字?

    我正在为某个型号编写一个简单的搜索表单 我们来调用模型Orchard并赋予它属性apples oranges and pears 只是为了演示 因此 该表格不需要填写所有字段 所以你可以搜索apples and oranges但不是梨 我需
  • 如何在 Haskell 中将大数据块解析到内存中?

    经过反思 整个问题可以归结为更简洁的问题 我正在寻找一个 Haskell 数据结构 看起来像一个列表 查找时间复杂度为 O 1 具有 O 1 元素替换orO 1 元素附加 或前置 如果是这种情况 我可以反转我的索引查找 我总是可以在编写我以
  • OpenGL 和远程桌面

    我在 Windows 10 计算机上通过远程桌面连接 RDC 使用 OpenGL 时遇到问题 该服务器配有 NVIDIA GEFORCE 8600 GT 然而 OpenGL 报告该卡是 GDI 通用设备 驱动程序已更新到v342 01 我确
  • 在网址、站点地图和 Google 抓取工具处理中转义了 #

    我们有大量 URL 其中一些包含哈希字符 哈希值是not来指示一个片段 但它是 URL 路径的一部分 因此我们通过以下方式转义哈希值 23 e g http example com example 231 http example com
  • Codechef 练习问题需要帮助 - 查找阶乘中的尾随零

    我已经为此工作了 24 小时 试图对其进行优化 问题是如何在大约 8 秒内找到 10000000 到 1000 万个测试用例范围内的数字的阶乘中尾随零的数量 代码如下 include
  • AngularJS无法显示上传文件日志[重复]

    这个问题在这里已经有答案了 我正在尝试使用 angularjs 创建一个文件上传函数 它将只接受文件并将其发送到服务器端 Django 为了确保文件上传功能正常工作 我在多个位置放置了多个console log 但是 没有显示任何日志 这是
  • Java 本机语言应用程序在 IDE 之外无法运行

    我有一个用netbeans在java下开发的程序 它有一个文本窗格 可以获取用非英语编写的文本并执行一些操作 包括保存打开新的 当我从 netbeans 运行该程序时 该程序运行良好且完整 工作完美 但是 当我转到 dist 文件夹并运行
  • 一个IIS站点WIF跨域,动态设置realm

    我们有很多域在一个 IIS 网站 应用程序池上运行 目前 我们正在使用 Windows Identity Foundation 实施 SSO 在 web config 中 必须设置领域
  • 用 jest 测试两个环境

    我想设置两个不同的环境并能够在监视模式下运行 server index js lt Node client index js lt jsdom package json 实际上 我为每个环境运行 jest 两次 为每个环境提供不同的配置文件
  • 第二个导航栏位于顶部第一个导航栏下方

    您好 我正在使用 twitter bootstrap 并且我有两个导航栏 但第二个导航栏隐藏在第一个导航栏下方 div class navbar navbar fixed top a class brand href a div class
  • Boost Phoenix(或 Boost Lambda)——懒惰地获取指针

    有没有办法获取惰性凤凰值 ref 的指针 如果是这样怎么办 Phoenix 占位符超载operator 因此一个简单的 1应该可以解决问题 请参阅 Phoenix 文档here http www boost org doc libs 1 4
  • 我应该推送已编译的 javascript 还是忽略它们?

    在新的 Angular 2 中 我们引入了 TypeScript 它主要提供可选的静态类型 类和接口 用 TypeScript 编写后 我们需要将代码编译为 JavaScript 才能运行程序 问题是我应该将编译后的 javascript
  • UserControl 将 GridView 导出为 PDF

    我有一个用户控制我正在尝试将 GridView 表导出为 PDF 我可以很好地创建 CSV 文件 但在尝试创建 PDF 时出现错误 我正在使用 iTextSharp 库 这是我收到的错误 GridView 类型的控件 DoNotAddLis
  • 您应该为每个 tomcat 集群运行一个还是多个应用程序?

    目前我正在设置一个应用程序 可以将其他 Web 应用程序部署到 Tomcat 6 集群 现在已设置为在已部署的 Web 应用程序和集群之间建立一对一的关系 我目前的理由是 我可以更改 Tomcat 服务器的 JVM 参数 而不会中断其他应用
  • Android - 离线、非矢量、自定义地图

    对于我正在开发的应用程序 我需要显示自定义光栅图像图块 不是基于矢量 可能来自卫星图像 并且我需要离线执行此操作 我想使用 MapView 但我找不到一种方法来告诉它使用自定义的离线地图图块 而不是从谷歌服务器中提取数据 我见过一些替代方案
  • 通过断点编号 Xcode 识别断点

    在 Xcode 中使用调试器时 出现以下错误 Execution was interrupted reason breakpoint 6 3 所以 我想删除断点 6 3 我怎样才能知道哪一个的数字是 6 3 我查看了断点摘要面板 尝试右键单
  • 将在公共计算机或信息亭上使用的 ASP.Net Web 应用程序的安全注意事项

    我有一个无需身份验证即可在公共场所的计算机上使用的应用程序 这是一个简单的四页应用程序 允许用户申请结婚证 一些办公室将设有公共电脑亭 申请人可以在前往柜台前填写自己的信息 他们也可以在去办公室之前在家中这样做 我应该考虑哪些因素来确保用户