我有一个grails URL如下:
http://myspecialproject/MyApp/MyController/paymentSuccess
如果上一页为PayThroughCreditCard
,用户应该只访问上述网址。
目前,拥有上述网址的任何人都可以点击并查看该页面。
如何防止这种情况发生?
我使用grails安全性,但这是为了防止未经授权的用户访问它。
答案 0 :(得分:2)
您可以使用Grails filter
来实现该目标。在之前的操作中,您可以测试请求来自哪里,如果它不是来自有效的URL,您只需将浏览器重定向到"抱歉,您不能看到此页面"页。
paymentSuccessFilter(controller:'myController', action:'paymentSuccess') {
before = {
if (! request.getHeader("referer").contains('controllerName')) {
redirect(action: 'invalidAccess')
return false
}
}
}
检查逻辑是一个方面,不应该是目标控制器操作本身的一部分。这就是为什么您更愿意使用Grails过滤器来实现目标的原因。
答案 1 :(得分:1)
你也可以检查推荐人
def referrer=request.getHeader('referer')