外我使用CSS3手风琴效果,我想检测如果黑客将 使脚本做出并行请求;即: 我有一个登录表单,并在同一页面注册形式,但只有 一个是可见的,因为有一个CSS3:访问该页面,用户 剂必须是HTML5兼容。 我使用的技巧是:访问一个变量Requesthandler
class Register(tornado.web.RequestHandler):
def post(self):
tt = self.get_argument("_xsrf") + str(time.time())
rtime = float(tt.replace(self.get_argument("_xsrf"), ""))
print rtime
class LoginHandler(BaseHandler):
def post(self):
tt = self.get_argument("_xsrf") + str(time.time())
ltime = float(tt.replace(self.get_argument("_xsrf"), ""))
print ltime
我用xsrf
变量,因为它是为每个用户唯一的,以 避免使服务器认为该请求来自同一 机到来。 现在我想要的:如何使时间值之间的差异: abs(ltime - rtime)
;意思是,我如何访问类之外RTIME, 我只知道如何在方法外部访问的价值,我要让 此操作来检测,如果该值小,则用户使用 一个脚本,使并行请求杀死服务器! 换言之(一般蟒蛇用户) 如果我有:
class Product:
def info(self):
self.price = 1000
def show(self):
print self.price
>>> car = Product()
>>> car.info()
>>> car.show()
1000
但如果我另一个
class User:
pass
那怎么办做出打印我self.price的方法,我试过 继承,但得到了错误:AttributeError:用户实例没有 属性'price
',所以只传递方法,而不是属性?
谢谢你:D,据我所知,没有办法避免这两个处理程序的并行执行? –
在龙卷风执行过程中,除非通过get()/ post()/请求处理程序方法上的@asynchronous装饰器来执行它,否则将执行此操作。由于它不是多线程的,即使装饰,你仍然只有一个执行路径。 – koblas
但如果我使用获取时间的技巧,如果它没有执行,那么它是零,否则,它将是一个值,如果它是一个值,这个值不能太小,这是我的想法 –