Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Czy powinienem zabezpieczać $_GET?
-Marek_cc-
post 2.01.2011, 13:10:21
Post #1





Goście







Witam

Mam pytanie.

Czy bezpiecznie jest tak bezpośrednio wprowadzać $_GET?

  1.  
  2. $zapytanie = $pdo -> query('SELECT * FROM news WHERE id = "'.$_GET['id'].'"');
  3. $row = $zapytanie -> fetch();



Czy powinienem go wcześniej potraktować htmlspecialchars i strip_tags?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
emajl22
post 2.01.2011, 13:17:02
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


htmlspecialchars używa się przy wyświetlaniu. Zapoznaj się z mysql-real-escape-string.


--------------------
Go to the top of the page
+Quote Post
hwao
post 2.01.2011, 13:46:24
Post #3


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




W tym przypadku wystarczy:
  1. $zapytanie = $pdo -> query('SELECT * FROM news WHERE id = "'.( (int) $_GET['id'] ).'"');


Zakładam że Twoje id to liczba całkowita.

Ale jako że używasz PDO zainteresuj się:
http://www.php.net/manual/en/pdostatement.bindparam.php

Szczegóły masz w 1 example
Powód edycji: [hwao]:
Go to the top of the page
+Quote Post
Mephistofeles
post 2.01.2011, 19:41:56
Post #4





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Pewnie, mysql_real... przy PDO. Cofamy się w rozwoju?
  1. $stmt = $pdo->prepare('SELECT * FROM `news` WHERE `id` = :id');
  2. $stmt->bindParam(':id', $id, PDO::PARAM_INT);
  3. $stmt->execute();
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: 25.06.2025 - 11:50