因此,我有一个有趣的问题...我需要让我的WebApp通过IBM应用程序扫描设备,然后才能将更改推向生产。我的最新更改包括ASP.NET MVC中的抗抗癌性。我在工作中对此进行了测试的每个浏览器都很好,没有问题。但是,当设备试图提交表单时,它会出现验证错误。查看验证令牌,设备正在对帖子的表单值进行HTML编码,因此字符串不匹配...这就是它们的外观:

cmiuJRHizXLPvlu9zHKmTwdJiHvq+n87CSJZkixkf/BLHayCPVITJhRCsWWirPWg - pulled from the cookie cmiuJRHizXLPvlu9zHKmTwdJiHvq%2Bn87CSJZkixkf%2FBLHayCPVITJhRCsWWirPWg - form value

因此,它是翻译成 +到%2b和 /到%2F ...有人以前看过吗?这是客户浏览器的问题吗?并且是否有抗科学产生一个没有特殊角色的字符串,因此我可以通过此扫描来获取我的应用程序?谢谢!

有帮助吗?

解决方案

查看MVC代码,看来它使用rngcryptoserviceprovider创建令牌。有趣的是,他们有一种方法可以代替不安全的字符(基本上是您在问题中指示的“+”和“/”),但它被标记为私有,我看不到它在哪里使用。

不幸的是,您不能从抗验证级课程中得出自己的课程,因为它已密封。这是非常可悲的,因为这是您问题的明显解决方案。

您可能会根据MVC代码创建一个新属性,并自己使用安全方法。它会违反干燥,但我看不到这一点,因为微软密封了课程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top