Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Walidacja danych.
-arrtxp-
post 20.05.2013, 22:16:03
Post #1





Goście







Witam,
otóż, że jestem początkujący i piszę strukturalnie.
Mam pytanie:

  1. function spr_text($text){
  2. if(!empty($text)){
  3. $search = array('@<script[^>]*?>.*?</script>@si', '@<[\/\!]*?[^<>]*?>@si', '@<style[^>]*?>.*?</style>@siU', '@<![\s\S]*?--[ \t\n\r]*>@' );
  4. $text = preg_replace($search, '', $text);
  5. }
  6. return $text = mysql_real_escape_string(nl2br(trim($text)));
  7. }


Czy taka funkcja zabezpieczy przez Atak SQL Injection itp ?

Ten post edytował arrtxp 20.05.2013, 22:30:55
Go to the top of the page
+Quote Post
com
post 20.05.2013, 22:27:52
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Ja tu raczej widzę przeszukiwanie pod kontem XSS niż SQL Injection, bo z SQL to chyba jedyny zwiazek ma mysql_real_escape_string()... ponadto poco nl2br ? i tworzenie z \n <br> które wczesniej usówasz funkcja trim, a potem jescze raz używasz trim(), przerost formy nad treścia polecam rzutowanie zmiennych, czy też PDO, zamiast takiej zabawy wink.gif

Ten post edytował com 20.05.2013, 22:29:25
Go to the top of the page
+Quote Post
-arrtxp-
post 20.05.2013, 22:30:24
Post #3





Goście







Ta... to teraz zastanów się jak atak SQL Injection wygląda...
Go to the top of the page
+Quote Post
com
post 20.05.2013, 22:36:32
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Ja mam się zastnawiać?! no ja chyba wiem, powiedz mi jaki to ma zwiazem z <script>...</script>, mylisz pojęcia...
Go to the top of the page
+Quote Post
-arrtxp-
post 20.05.2013, 22:40:41
Post #5





Goście







Hym, jeżeli wykonam update i wrzuce sobie tam własny skrypcik, to chyba nie chalo. Ta funkcja przed tym zabezpiecza... tak samo gdy chcę metodą post lub get zabawić się w wyciągnięcie danych. Czy niemam racji ?
Go to the top of the page
+Quote Post
com
post 20.05.2013, 22:49:22
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


ale gdzie wrzucisz ten skrypcik, tak jak powiedziałem XSS, a SQL Injection to dwie zupełnie inne kwestie, XSS polega min na wyciaganiu od usera sida sesji potrzebnego do dalszych manipulacji, a SQL Injection to nic innego jak manipulacja zawartoscia bazy danych, niekoniecznie majac do niej jawny dostęp... Tak jak powiedziałęm zapoznasz się z PDO i tam jest mase mechanizmów "ochronnych" których w pochodnych mysqlX nie ma i nie było, dzieki temu nie trzeba sie bawić w pisanie czegos takiego, bo to sie okazuje być zbedne wink.gif a pozatym usuwanie encji z podciagu obsługuje jedna funkcja htmlentities()...

Ten post edytował com 20.05.2013, 22:51:27
Go to the top of the page
+Quote Post
-arrtxp-
post 20.05.2013, 22:53:32
Post #7





Goście







SQL Injection przeprowadza się poprzez ?
Go to the top of the page
+Quote Post
!*!
post 20.05.2013, 22:55:28
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(arrtxp @ 20.05.2013, 23:16:03 ) *
Czy taka funkcja zabezpieczy przez Atak SQL Injection itp ?

Nie. Jak już wspomniał @com pomyliłeś bajki, a mysql_real_escape_string też specjalnie zabezpieczeniem nie jest, chyba że później jeszcze coś robisz.

Cytat(arrtxp @ 20.05.2013, 23:53:32 ) *
SQL Injection przeprowadza się poprzez ?

http://pl.wikipedia.org/wiki/SQL_injection


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
-arrtxp-
post 20.05.2013, 23:00:11
Post #9





Goście







No tak... i np: w polu input lub w w formularzu www pisze się odpowienią składnie.
I ta funkcja temu zapobiega... możecie przetestować.
Go to the top of the page
+Quote Post
!*!
post 20.05.2013, 23:01:37
Post #10





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Jaką składnie i czemu zapobiega, sql injection? Nie sądzę.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
com
post 20.05.2013, 23:02:48
Post #11





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Jescze raz powiem to sie zwie atakiem XSS http://hack.pl/artykuly/dla-poczatkujacych/podstawy-xss.html i wystarczy do tego zastosować htmlentities() i wszytkie < > itd zamieni Ci na &lt i &gt zresztom co ja bede Ci mówił poczytaj manuala http://php.net/manual/en/function.htmlentities.php wink.gif

Ten post edytował com 20.05.2013, 23:04:54
Go to the top of the page
+Quote Post
-arrtxp-
post 20.05.2013, 23:11:50
Post #12





Goście







Skrypt usuwa znaki typu: " ' ", za pomocą, których dokonuję się SQL Injection.


Go to the top of the page
+Quote Post
!*!
post 20.05.2013, 23:17:01
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(arrtxp @ 21.05.2013, 00:11:50 ) *
Skrypt usuwa znaki typu: " ' ", za pomocą, których dokonuję się SQL Injection.

Skąd pomysł że to wystarczy? http://johnroach.info/2011/02/17/why-mysql...ection-attacks/
Poza tym preg_match odwoła się tylko do pierwszego ciągu wystąpienia.

Nie ma co rozwijać tego dalej, bo dużo już o tym było a temat chyba nawet jest przyklejony. Najlepiej zrobisz jak zaczniesz korzystać z PDO i bindowania.

Ten post edytował !*! 20.05.2013, 23:18:14


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Mackos
post 20.05.2013, 23:20:24
Post #14





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

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


Jeśli chcesz zabezpieczyć swoje zapytania do bazy danych skorzystaj z jakiejś gotowej biblioteki jak np. PDO.
Tutaj masz fajny tutorial http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO
Jeśli będziesz bindował wszystkie wartości wprowadzane do bazy, to będziesz miał całkiem bezpieczniej konstruowane zapytania.


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
-arrtxp-
post 20.05.2013, 23:23:34
Post #15





Goście







No dobra... ale " ; " też nie przepuszcza ...

http://johnroach.info/2011/02/17/why-mysql...ection-attacks/

^^ żaden przykład nie przeszedł próby.
Go to the top of the page
+Quote Post
com
post 20.05.2013, 23:24:12
Post #16





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Cytat
Skrypt usuwa znaki typu: " ' ", za pomocą, których dokonuję się SQL Injection.


htmlentities() też specool.gif :
http://ideone.com/RMZk0Y

Ten post edytował com 20.05.2013, 23:27:09
Go to the top of the page
+Quote Post
-arrtxp-
post 20.05.2013, 23:27:45
Post #17





Goście







" ; " nie przepuszcza ...
Go to the top of the page
+Quote Post
!*!
post 20.05.2013, 23:33:39
Post #18





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Nie wiem jak Ty to sprawdzasz, ale ja tam w funkcji wyżej widzę, że jednak przepuszcza "wszystko" jak leci.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
com
post 20.05.2013, 23:36:28
Post #19





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Tak jak napisał !*! dalsza dywagacja na ten temat nie ma sensu, jak sugerowałem na początku, a potem poparli to inni ogarnij PDO i zapomnij o pisaniu takich funkcji które wniosły tyle że jak twierdzisz usunąłeś przecinek z podciągu, gra nie warta świeczki... wink.gif

Ten post edytował com 20.05.2013, 23:38:29
Go to the top of the page
+Quote Post
-arrtxp-
post 20.05.2013, 23:37:10
Post #20





Goście







Y? podaj mi co wklepujesz.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 16.07.2025 - 04:59