外我使用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
但如果我使用獲取時間的技巧,如果它沒有執行,那麼它是零,否則,它將是一個值,如果它是一個值,這個值不能太小,這是我的想法 –