0

私は CSS3 アコーディオン効果を使用しており、ハッカーがスクリプトを作成して並列リクエストを作成するかどうかを検出したいと考えています。つまり、同じページにログイン フォームと登録フォームがありますが、CSS3: ページにアクセスするには、ユーザー エージェントが HTML5 互換である必要があるため、表示されるのは 1 つだけです。私が使用するヒントは次のとおりです。

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 を出力するメソッドを作成するにはどうすればよいpriceですか?

4

1 に答える 1

1

データの永続的なストレージを使用するモデルオブジェクトとパターンを理解する必要があるようです。 tornado.web.RequestHandlerサブクラス化するオブジェクトは、リクエストの期間中のみ存在します。self.write()サーバーでURLを受信して​​から、またはを介してデータがブラウザに返送されるまでself.finish()

PythonでMVCアプリケーションを構築する方法の基本的なアイデアについては、DjangoまたはFlaskのチュートリアルをご覧になることをお勧めします(これをカバーするTornadoチュートリアルはありません)。

于 2012-11-03T14:20:30.477 に答える