我想将用户重定向到另一个页面以填写验证码,但我想保留帖子数据,如果验证码通过,则将其“返回”并完成上一个页面操作。
当/如果用户成功,我想添加一个captchaPass = true,并希望访问帖子数据并继续进行处理。现在我正在使用重定向,但是我不需要ATM。
是否可以携带发布数据?请记住,我可能会用户访问多个页面,因此必须分离数据且不混淆。
一种想法是在验证码页面上获取并保存所有已发布的数据[1],然后使用此表单数据重新创建中间的白页,并自动在前一页上添加新的帖子。
这可以解决哈希检查和安全性的任何问题吗?
没有这个白色的重定向页面有更好的主意吗?
[1]另一个问题是,如何通过重定向发送此发布的数据?而不更改网址-或使其太大而无法接受。请记住,服务器转移可能不是一个好主意,因为会使有关Captach回发的想法复杂化。
更新1
这里的基本思想是,某个人如何捕获页面的完整回发,显示另一个页面,然后将回发数据发送到原始的第一个页面。
原因是阻止不良用户或试图通过在短时间内从不同页面发回许多帖子来破坏页面/服务器的攻击者机器人程序。所有这些事情都是在没有javascript的情况下发生的,大多数攻击者使用定制的程序,这些程序只是将数据发布到所有页面上,从而试图使系统瘫痪。
例如,如果页面上有搜索框,那么对于大多数站点来说,通过使用通配符(使用SQL通配符称为和Dos Attacks)开始进行数百次随机搜索并使sql服务器和计算机变得很容易将其关闭花时间和CPU进行搜索和搜索思维。因此,为防止此类攻击,您需要识别同一台计算机上的多个回发,然后下一步是将他重定向到验证码页面,以防他是计算机程序。
另一个例子,很多页面都有电子邮件提交,非常容易,您可以立即提交他的电子邮件的数百倍,并立即充满他的邮箱(包含数百封电子邮件),或在商店中一次又一次地将所有物品放在购物车上并充满数据库之类的东西。
因此,在这种情况下,ajax和javascript无法正常工作,我们需要一种方法,在帖子发布后将其重定向到可以检查是真实用户还是攻击者并阻止他的页面,但是如果是真实用户,则必须返回以他的正常行动。
更新2
所有这些都必须以常规方式完成,例如在BasePage或Global.asax上或与任何页面的内容无关的地方。因为我们试图防止DoS攻击,或在任意随机页面的任意随机位置的任何地方多次提交。
是的,我知道您如何在联系页面上放置验证码,但这不是这个问题的最初要求-这个问题询问如何将发布数据携带到另一个页面,将其保留在该页面上,然后将其重新发送回原始页面一。
显而易见的解决方案是读取所有回发,并将它们保存在表单上,然后回读它们,并仅使用该数据立即制作一个表单,然后进行回发。在这里,我想问一下是否有比该解决方案更好的解决方案。
其他用途
还存在用户位于请求身份验证的页面内,但身份验证票证已过期,并且用户发回邮件的情况。在这种情况下,我们需要将所有回发的数据保留在某处,以继续登录页面,然后将其重新发送回请求身份验证的第一页。
最佳答案
当然,只需将表单数据以隐藏元素的形式写到验证码页面,并在表单中添加其他验证码字段即可。让您的提交 Action 将整个过程恢复到原始状态。使用ASP.NET,将验证码写到隐藏了表单字段的同一页上可能会更容易,但是您可以执行跨页回发,如上所述。
关于asp.net - 我可以重新发布或携带POST数据吗(如果可以,我可以使用重定向吗?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1086735/