Nasıl $ _GET daha güvenli yapabilirim.?

0 Cevap php

Ben sistemi yorumlama için, silmek, markasspam onaylamak gibi bazı işlemi gerçekleştirmek için get yöntemi kullanıyorum. ben bu şekilde gitmek için son derece güvensiz olduğunu biliyorum ama bunu yardımcı olamaz. $ _GET metodu kullanılarak nedeni PHP_SELF kullanarak sayfanın kendi içinde işlemi gerçekleştirmek için, ve Bilginize ben çok işlemi gerçekleştirmek için onay kutusunu kullanarak sonrası yöntemi kullanıyorum çünkü.

Şimdi güvenli bit yapmak için i numarayı rastgele veya karma veya bir şey oluşturmak ve sonra karşılaştırmak, id almak ve işlemi gerçekleştirmek istiyorum

benim geçerli kod biraz böyledir.

<?php 
if($approve == 1 ) 
{ 
    ?>
    <a href="<?php echo $_SERVER['PHP_SELF']."?approve=".$id; ?>">Unapprove</a>
    <?php 
} else 
{ 
    ?> 
    <a href="<?php echo $_SERVER['PHP_SELF']."?unapprove=".$id; ?>">Approve</a>
    <?php 
}
?> 
| <a href="<?php echo $_SERVER['PHP_SELF']."?spam=".$id; ?>">Spam</a> 
| <a class="edit-comments" href="edit-comments.php?id=<?php echo $id; ?>">Edit</a> 
| <a href="<?php echo $_SERVER['PHP_SELF']."?delete=".$id; ?>">Delete</a>

ve ben bu kodu kullanarak işlemi gerçekleştirmek ..

if(isset($_GET['approve'])) {
    $id = intval($_GET['approve']);
    $query = "UPDATE comments SET approve = '0' WHERE id = '$id'";
    $result = mysql_query($query);
}

if(isset($_GET['unapprove'])) {
    $id = intval($_GET['unapprove']);
    $query = "UPDATE comments SET approve = '1' WHERE id = '$id'";
    $result = mysql_query($query);
}

if(isset($_GET['delete'])) {
    $id = intval($_GET['delete']);
    $query = "DELETE FROM comments WHERE id = '$id'";
    $result = mysql_query($query);
}

if(isset($_GET['spam'])) {
    $id = intval($_GET['spam']);
    $query = "UPDATE comments SET spam = '1' WHERE id = '$id'";
    $result = mysql_query($query);
}

yerine onaylamak veya onaylama veya silebilir veya spam kullanarak, ben bu kelimeleri rastgele veya karma istiyorum ve işlemi gerçekleştirin sonra mümkün olduğunca uzun ve istiyorum.

ben bunu nasıl yapar? Bu konudaki yorumunuz nedir?

EDIT: Please Note Only the Authenticated User i.e Admin will be able to perform this operation. even though it pass through authentication system i want to add more security even for admin. to avoid experiments or accident

kod i ne elde etmek istediğinizi anlamak için sadece örnek olduğu kesin değildir.

0 Cevap