Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zabezpieczenie skryptu który dodaje wpis do bazy
Kuba707
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 20.03.2010

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


Mam sobie skrypcik na dodawanie newsów do bazy (tylko dla zalogowanego na admina - sesja PHP). Składa się on z trzech plików:
- admin.php - plik w którym jest formularz na dodawanie newsa i inne bajery
- functions.js - funkcje JS, jQuery
- sendmessage.php - skrypt PHP na wysyłanie zapyań do bazy odpalany przez AJAXA

Czyli no wypełniam sobie formularz, klikam dodaj, odpala sie funkcja JS, mała walidacja i jeśli wszystko ok to ajaxem wysyła zapytania do pliku sendmessage.php
Ale jak to zabezpieczyć. Użytkownik może przecież podpatrzeć mój kod JS w podglądzie strony i wywołać ręcznie funkcje tak żeby przeszła pierwsze dwa ify. Kod wygląda tak:
Kod
function sendNews()
{
    var titleV = document.newspanel.title.value;
    var contentV = document.newspanel.content.value;
    
    if(titleV.length < 3)
    {
        $("div#result").css({"color":"#D50000", "font-weight":"bold"});
        document.getElementById("result").innerHTML = "Tytuł newsa musi zawierać od 3 do 58 znaków.";
    }
    else if(contentV.length < 1)
    {
        $("div#result").css({"color":"#D50000", "font-weight":"bold"});
        document.getElementById("result").innerHTML = "Próbujesz wysłać pustą wiadomość.";
    }

//.....

Może przecież w Google Chrome otworzyć stronę, edytować treść jako HTML, dodać formularz, wpisać odpowiednie dane i wpisać adres
Kod
java script:sendNews(); // to forum oddziela 'java' od 'script' - w tym wypadku te dwa wyrazy mają być połączone;d
No nie? Chyba że się myle i się tak nie da.

To jest jedno. Ale jak zabezpieczyć sam plik sendmessage.php? Zawartość pliku to łączenie z bazą, wysłanie zapytania i zamknięcie bazy. Równie dobrze ktoś sobie może zrobić własny skrypt i wysłać postem informacje do mojego skryptu (ofc nie zna nazwy pól, no ale....). No więc jak to skutecznie zabezpieczyć?

Ten post edytował Kuba707 4.02.2011, 11:40:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kuba707
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 20.03.2010

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


Oczywiście zgadzam się że trzeba zrobić dodatkowo walidację po stronie serwera (IMG:style_emoticons/default/wink.gif)
Ale co do tego sprawdzania czy jest adminem, to jeśli dam w pliku sendmessage.php
Kod
echo 'Czy jest zalogowany: '.$_SESSION['LOGGED'];

to mając w kodzie jQuery na wysyłanie wiadomości takie coś:
Kod
success: function(result)
            {
                $("div#result").css({"color":"#008AF0", "font-weight":"bold"});
                document.getElementById("result").innerHTML = "Wysłanie AJAXem powiodło się. ";
                alert('Rezultat (testowo): ' + result);
            }

to wynik jaki dostaje to:
Kod
Rezultat (testowo): Czy jest zalogowany:

A powinna jeszcze na końcu być jedynka.

@Edit po dwóch dniach.
Mam pytanie. Da się to jakoś skutecznie zabezpieczyć aby dodawanie newsów na stronę poprzez jQuery AJAX było to bezpieczne? Czy może jednak takie rzeczy lepiej zrobić w samym PHP a AJAXA używać do mniej priorytetowych celów jak odświeżanie elementu strony, itp? (IMG:style_emoticons/default/smile.gif)

Ten post edytował Kuba707 6.02.2011, 14:31:09
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 05:13