eminiasty
7.12.2016, 01:19:02
Na przkladzie ponizszego kodu. Jak zabezpieczyc :
$id_newsa=$_GET['id'];
Prosze o przyklad.
echo "<form method='post'>";
echo "<input type='text' name='nick'> </br>";
echo "Tresć komentarza: </br>";
echo "<textarea name='komentarz' cols='40' rows='15'></textarea> </br>";
echo "<input type='submit' value='Dopisz'>";
$ip=$_SERVER['REMOTE_ADDR'];
$id_newsa=$_GET['id'];
mysql_query("insert into komentarze (id,nick,tresc,ip,id_newsa) values (0,'$nick','$text','$ip','$id_newsa')");
Niree
7.12.2016, 02:20:14
Ja nawet nie wiem, czy ten kod ma prawo działać, skoro nigdzie nie zdefiniowales $_GET['id'] chociażby przez isset.
O jakie zabezpieczenie Ci chodzi?
viking
7.12.2016, 05:13:34
Co tu dużo mówić. Cały ten kod jest do zmiany. Używasz rozszerzenia mysql które jest przestarzałe i zniknęło już z PHP. Zamiast tych escape string poczytaj o bindowaniu parametrów.
eminiasty
7.12.2016, 17:08:38
-viking
ja to wszystko wiem
-Niree
To nie moj kod, znalazłem wczoraj jakiś post na forum odnośnie zabezpieczeń i w ostatnim poście tego tematu było napisane
"zostało Ci zabezpieczyć jeszcze GET"
czyli:
$id_newsa=$_GET['id'];
Więc pytam jak?
pominimy fakt dzialania kodu, to że jest on przestarzaly itp chodzi tylko o metode
viking
7.12.2016, 17:21:02
To ci podałem, bindowanie parametrów. Wszystkie zapytania obecnie tak się pisze. A id zazwyczaj rzutuje się na integer.
eminiasty
7.12.2016, 19:18:43
tylko tobie chodzi o cos w ten desen:
bindValue(':id', $id, PDO::PARAM_INT )
a ja chciałbym to zrobić bez wykorzystania obiektowosci / PDO
myślałem raczej o jakimś fitrze na _GET(id) ,kiedyś robilo sie to wyrażeniami regularnymi , teraz prawdopodobnie są na to funkcje, tylko nei wiem jakie?
viking
7.12.2016, 19:24:07
Przeczytaj jeszcze raz: rzutowanie na integer.
eminiasty
7.12.2016, 19:28:13
Czyli w tym przykladzie bylo by cos takiego?
$id_newsa= (int) $_GET['id'];
Co w momencie gdy np ktos chce podmienci adres z:
index.php?id=234
na
index.php?id=jurek
jaki bedzie efekt rzutowania jurek na int? zwroci blad?
viking
7.12.2016, 19:36:48
A ciężko sprawdzić var_dumpem?
eminiasty
7.12.2016, 20:42:33
W pierwszym poście napisalem
Prosze o przyklad.
Czy nie mógł bym go dostac, prosze tylko o jakis example a nie kod do zawiłego zadania?
viking
7.12.2016, 21:19:53
var_dump((int) 'jurek');
eminiasty
7.12.2016, 21:48:45
Z czego wynika ze jurek dalej nie jest intem?
viking
7.12.2016, 21:49:46
A czym jest 0 według ciebie?
Reszta oczywiście typu 12jurek wynika bezpośrednio z dokumentacji gdzie konwersje są dość dokładnie opisane.
eminiasty
7.12.2016, 23:29:24
Poprostu przentacyjne jurek to dalej string

, tak czy siak dziekuje, już zrozumiałem. Tylko czy to jedyna metoda takiego testu?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.