2012-10-22 78 views
0

如果用戶假一種形式,改變輸入的角色,他可以改變在數據庫領域。 如何通過假投入保護Yii表單?Yii的假表漏洞

型號Users.php

array('role', 'numerical', 'integerOnly'=>true), 

回答

2

你不能 '保護窗體'。您需要通過會話或其他一些存儲方式將數據從客戶端(即表單)移動到服務器(即php)。

只要用戶的機器是負責設置數據(即通過表單),那麼他們可以把它改成爲所欲爲。如果你沒有在服務器端獨立驗證的方法,那麼不要指望表單向你發送一些你可以信任的東西。

關於會話,請參閱:

存儲狀態信息和敏感數據僅在服務器端:http://www.yiiframework.com/doc/api/1.1/CHttpSession

從常見的弱點枚舉項目(http://cwe.mitre.org/data/definitions/807.html)詳細簡介。 確保系統明確和毫不含糊地保存了 跟蹤自己的狀態和用戶狀態,並具有合法 狀態轉換定義的規則。不要讓任何應用程序的用戶直接在不是通過導致 狀態轉換是合法的行爲等任何方式影響狀態 。

+0

我同意,作爲一個經驗法則永遠不要相信用戶的輸入,也Yii中,只定義了用戶輸入的規則,他們不能被大衆分配的方式。 – Asgaroth