我正在使用CSS3 accordion effect,我想要检测黑客是否会编写一个脚本来发出并行请求;例如:我在同一个页面中有一个登录表单和一个注册表单,但只有一个是可见的,因为有一个CSS3:要访问该页面,用户代理必须是HTML5兼容的。我使用的提示是:
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,我只知道如何访问方法外部的值,我想进行这个操作来检测如果值很小,那么用户正在使用一个脚本发出并行请求来杀死服务器!换句话说(对于一般的python用户),如果我有:
class Product:
def info(self):
self.price = 1000
def show(self):
print self.price
>>> car = Product()
>>> car.info()
>>> car.show()
1000 但如果我有另一个
class User:
pass 那么如何创建一个方法来打印用户,我已经尝试了继承,但得到了错误: AttributeError: self.price实例没有属性'price',所以只传递方法,而不传递属性?
发布于 2012-11-03 22:20:30
听起来您需要了解使用持久数据存储的模型对象和模式。tornado.web.RequestHandler和您从中派生的任何对象只在您的请求期间存在。从从服务器接收到URL到通过self.write()或self.finish()将数据发送回浏览器的整个过程。
我建议你看看一些Django或者Flask tutorials,以获得一些关于如何用Python构建MVC应用程序的基本想法(据我所知,没有介绍这方面的Tornado教程)。
https://stackoverflow.com/questions/13203812
复制相似问题