Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Czy funkcja jest poprawna?
Rid
post 30.05.2011, 01:07:44
Post #1





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Witam próbuje przerobić skrypt z PHP na ASP ,no i niby wszystko jest tak jak powinno ,a nie chce działać.
Jest to w miarę prosty skrypt usuwania plików z folderu przy pomocy AJAXA.
Kod
HTML File:
Code:

<html>
<head>
<script type="text/javascript">
function deleteFileAjax(filename) {
    scriptitem = document.createElement('script');
    scriptitem.type = 'text/javascript';
    scriptitem.src = 'ajax.php?filename=' + filename;
    scriptitem.id = 'ajax';
    document.body.appendChild(scriptitem);
    setTimeout('document.body.removeChild(document.getElementById("ajax"))', 500);
}
</script>
</head>

<body>
<a href="java script:deleteFileAjax('log.txt');">Delete</a>
</body>
</html>


Ajax.php
Code: [Select]

<?php
if (isset($_GET['filename'])) {
  if (unlink(htmlentities($_GET['filename']))) {
    echo "alert('Great success!');";
  }
}
?>

Przykład tej funkcji jest na stronie
http://www.phpfreaks.com/forums/index.php?topic=159544.0
I mam teraz prośbę dla Forumowiczów ,czy aby ten skrypt jest poprawny,czy Ktoś mógłby to sprawdzićquestionmark.gif?Ja takiej możliwości niestety nie mam.
Go to the top of the page
+Quote Post
krowal
post 30.05.2011, 09:19:58
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


Toż to nawet nie jest AJAX wink.gif to jest wstawienie tagu <script> w body, który w src ma podaną ścieżkę do skryptu php usuwającego podany plik. Bardzo dziwny sposób na robienie tego, nie wiem nawet czy w 100% skuteczny - co na to cache ? (czy da się wywołać dwa razy ten sam src przy włączonym cache ?). Druga sprawa to to, że JS możesz zostawić w spokoju, będzie działać bez względu na to czy będzie to php czy asp. Powinieneś raczej przerobić tą część:
  1. <?php
  2. if (isset($_GET['filename'])) {
  3. if (unlink(htmlentities($_GET['filename']))) {
  4. echo "alert('Great success!');";
  5. }
  6. }
  7. ?>

O bezpieczeństwie nawet nie wspomną bo go tu nie ma, za pomocą tego skryptu możesz usunąć jakikolwiek plik na serwerze, przykład:
[JAVASCRIPT] pobierz, plaintext
  1. deleteFileAjax('ajax.php') //i twój skrypt przestaje działać.
[JAVASCRIPT] pobierz, plaintext


Ten post edytował krowal 30.05.2011, 09:20:28


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
Rid
post 30.05.2011, 11:20:37
Post #3





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

Ostrzeżenie: (0%)
-----


Bezpieczeństwem ,to ja będę martwił się później,żeby ten skrypt jeszcze u mnie działał sciana.gif ,po za tym przed usuwaniem pliku zawsze ,można sprawdzać rozszerzenie tego pliku,do ściąganych plików dodawać atrybut tylko do odczytu,żeby ktoś nie mógł je usunąć ,są przecież metody na zabezpieczenia plików.

Nie wiem,te rozwiązanie o ile zadziała jest najłatwiejsze u mnie do wdrożenia,gdyż pliki są ściągane asynchronicznie,i wyświetlane na bieżąco i tak też muszę je usuwać.

Zrobiłem arrowheadsmiley.png ,działa.Zdjęcie mi usuwa.
A pro po Pana wypowiedzi:
Cytat
Toż to nawet nie jest AJAX to jest wstawienie tagu <script> w body, który w src ma podaną ścieżkę do skryptu php usuwającego podany plik


Może i tak ,ale efekt jest bardzo,ale to bardzo zbliżony do tego Ajaxowego.
Mam u siebie ,możliwość podejrzenia requestów i co otrzymuje:
GET:
Kod
https://localhost:44300/przedmiot.aspx?filename=34bdc0818a33cde3.jpg

gdzie ,34bdc0818a33cde3.jpg jest podaną nazwą pliku do usunięcia.
Dzieje, się to wszystko bez przeładowania strony(Czy nie jest tak w Ajaxie?questionmark.gifquestionmark.gif),tylko jak to leci callbackiem?questionmark.gif?

Ten post edytował Rid 30.05.2011, 11:24:40
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 16:25