0

我正在使用 CSS3 手风琴效果,我想检测黑客是否会编写脚本来发出并行请求;即:我在同一页面中有一个登录表单和一个注册表单,但只有一个可见,因为有一个 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 

那么如何制作一个打印我self.price的方法,我尝试过继承,但出现错误:AttributeError:用户实例没有属性' price',所以只有方法被传递,而不是属性?

4

1 回答 1

1

听起来您需要了解使用持久存储数据的模型对象和模式。 tornado.web.RequestHandler并且您从中子类化的任何对象仅在您的请求期间存在。从服务器接收到 URL 到通过self.write()或将数据发送回浏览器self.finish()

我建议您查看一些 Django 或Flask 教程,了解如何在 Python 中构建 MVC 应用程序的一些基本想法(据我所知,没有涉及此内容的 Tornado 教程)。

于 2012-11-03T14:20:30.477 回答