Я использую UNLINK с PHP
и AJAX
. Я знаю, что таким образом очень опасно, потому что каждый может удалить любые файлы. Но мне нужно использовать AJAX
, потому что я не могу перезагрузить страницу при удалении файлов.Как избежать рисков безопасности UNLINK в PHP?
Так как мне сделать, чтобы разрешить удалять файл только для пользователя, которому это принадлежит?
Пожалуйста, дайте мне знать, и другие вещи, если вы думаете, что я здесь делаю что-то неправильно или что-то другое, что вы имеете в виду, и вы думаете, что это будет полезно:)
Мой PHP код:
<?php
$photo_id = $_GET['photo_id'];
$thumbnail_id = $_GET['thumbnail_id'];
function deletePhotos($id){
return unlink($id);
}
if(isset($photo_id)){
deletePhotos($photo_id);
}
if(isset($thumbnail_id)){
deletePhotos($thumbnail_id);
}
?>
Мой AJAX код:
function deletePhoto(photo, thumbnail){
var photos = encodeURIComponent(photo);
var thumbnails = encodeURIComponent(thumbnail);
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("media").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET", "http://192.168.2.104/images/users/delete_photo.php?photo_id="+photos+"&thumbnail_id="+thumbnails, true);
xmlhttp.send();
}
AJAX не имеет ничего общего с безопасностью. С точки зрения сервера, вызов AJAX ничем не отличается от обычного. Ваша проблема не в AJAX, а в отсутствии авторизации. Раньше вы это понимаете, скорее решите свою проблему. –
Привет @Col. Шрапнель, я не думаю, что вы абсолютно правы, потому что без 'AJAX' мне не нужно делать файл, доступ к которому у кого угодно, и может удалить что-либо с помощью запроса GET. В противном случае я знаю, что проблема здесь в авторизации, поэтому я задал этот вопрос: «Как я могу сделать, чтобы удалить файл только для пользователя, который его владеет?» – Adam
как вы можете позволить пользователю удалить файл без таких скрипт? –