2014-02-22 47 views
-1

我有一個網頁,列出我所有的數據庫數據。我在每條記錄前都有一個DELETE鏈接。當用戶點擊DELETE鏈接時,它會將用戶重定向到一個名爲delete.php的頁面,並在此頁面中運行刪除查詢。我的過程是從網頁安全地刪除MySql數據

的index.php

<a href="delete.php?action=delete&id=<?php echo $ID; ?>">DELETE</a> 

delete.php

if (isset($_REQUEST["action"])) 
if ($_REQUEST["action"] == "delete") { 
    $id= $_GET['id']; 
    $del_query = mysql_query("DELETE FROM TABLE WHERE id= '$id'"); 
} 

誰能告訴我刪除任何數據安全的方法,因爲這個過程沒有加密,用戶可以直接在網址delete.php?action=delete&id=3中輸入這個名稱將刪除該記錄。

+0

看看上面註釋中的SQL注入頁面。 –

+0

@MKhalidJunaid我沒有詢問SQL注入。我想要安全地傳遞ID的方式 – Arif

+0

@ maythesource.com在這個問題中沒有提到如何安全地傳遞id或其他數據。 – Arif

回答

3

您將需要一個post方法不能直接給出(通過鍵入URL)

,而不是這種使用形式

<a href="delete.php?action=delete&id=<?php echo $ID; ?>">DELETE</a> 

<form method="post" action="delete.php?action=delete"> 
id: <input type="text" name="id"/> <input type="submit"/> 
</form> 

在delete.php你需要$id=$_POST['id']

爲了更安全的考慮,你需要一些類型的驗證碼技術

+0

非常感謝你的回答。我正在使用窗體,但我認爲它會加載網頁更多 – Arif

+0

@sHAmsuLaRiFeEn雖然[GET不應該用於除數據檢索之外的任何其他功能](http://tools.ietf.org/html/rfc2616#section-9.3) ,只要將其更改爲POST,除非您有適當的授權檢查,否則不會更改任何內容。 – Gumbo