簡體   English   中英

只讀表單字段

[英]Readonly form field

我正在嘗試使用插件在wordpress中設置自定義表單,並按照以下說明進行教程: http//code.tutsplus.com/tutorials/creating-a-custom-wordpress-registration-form-plugin--cms- 20968 我不打算創建一個“注冊用戶”插件,我只是以它為例在wordpress中創建自定義表單。 對於我的問題,我不認為使用wordpress是相關的,所以我在一般部分中發布這個問題。

現在我想處理一些安全問題。

我有一個這個表單的輸入字段,它從我的數據庫中獲取值“name”並將其顯示給表單字段中的用戶。 然后將此“名稱”再次發送到數據庫。 我不希望用戶能夠修改此字段。 我在表單中使用了“readonly”,但是任何人都可以編輯頁面的來源並編輯“名稱”,所以這不是那么安全。

我該怎么做才能阻止訪問者編輯此字段?

如有必要,我也可以使用JavaScript。

我希望它可以幫助你停止傳遞錯誤的編輯值

在回顯您的表單時,使用hash_mac創建這樣的隱藏輸入....

$secret="mysecretstring":
$string =strtolower($name_retrived_from_db);
$hmac = hash_hmac("sha1", $string, $secret);

echo '<input type="hidden" name="foo" value="'.$hmac.'">';
echo '<input type="text" name="given_name" value="'.$name_retrived_from_db.'" readonly>';

然后在接收端,用$ hmac驗證給定的名稱

 $secret="mysecretstring":
$string =strtolower($_POST['given_name']);
$hmac = hash_hmac("sha1", $string, $secret);
$foo = $_POST['foo'];

如果$ hamac和$ foo匹配則沒有人會編輯你的輸入。 讓你的“mysecretstring”無法猜測。

  if ($hmac == $foo ) {
// Your read only input has not been edited
} else {
//Input  Edited
}

首先,你要保留它,然后添加一個額外的隱藏輸入字段,並在將它提供給readonly字段時為其分配值,然后在提交表單時獲取隱藏輸入字段的值。我希望我會幫你的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM