我有一个应用程序,无需在公共场所的计算机上进行身份验证就可以使用。这是一个简单的四页应用程序,允许用户申请结婚许可证。有些办事处设有公共电脑亭,申请人可在该处填写自己的资料,然后才可向职员查询。在参观办公室之前,他们也可以在家里这样做。我应该考虑哪些因素来确保用户不能访问上一个用户的输入?一些表单数据将包含敏感的信息,如道布,SSN和母亲的娘家名字。
1.禁用AutoComplete
到目前为止,我已经在母版页表单标记中设置了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。他们可以通过点击按钮来获得更多的时间。当计时器结束时,它会重定向回我在Page_Load中杀死会话的主页面。当用户单击"Finished/Submit“按钮时,我也重定向到此页面。会话结束后,按URL导航到页面将永远不会加载上一个应用程序。它会被当作一个新的。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Session.Abandon();
}4.我还能做什么呢?
Your awesome suggestions/tips here发布于 2010-08-02 20:30:31
我觉得你的想法是对的。在“完成/提交”上结束会议是我会推荐的。仍然阅读owasp前十并记住常见的漏洞。
1)确保使用HTTPS。
2)始终要在推出应用程序之前对其进行漏洞测试。我建议使用马鹿(免费)、阿纽特克斯($)或NTOSpider($$$$)。
3)保持服务器更新,确保运行OpenVAS以确保服务器是安全的。
发布于 2010-08-02 21:02:28
因为这是一个Kiosk应用程序,所以您需要确保浏览器被配置为满足不缓存任何东西的请求。
上一次我研究了服务器端无缓存头的有效性时,我意识到任何使用自定义的、错误的或不常见的浏览器的人都可能不是不缓存文档的荣誉请求。
您还可能希望在某些页面(例如,会话结束时的某个页面)添加javascript回键断点和历史导航威慑,但不是所有的页面,因为没有人喜欢被破坏的back按钮。
发布于 2010-08-02 20:25:43
https://stackoverflow.com/questions/3391427
复制相似问题