Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zabezpieczanie prze SQL Injection
Raven1122
post 10.09.2011, 15:13:41
Post #1





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Jak zabezpieczyc ten skrypt przed injection? chodzi mi o mysql_real_string_escape i o to zeby nie dalo sie dodac tagow html

  1. <?php header("location:../index.php?id=3"); ?>
  2. <?php
  3.  
  4. if($_POST['author'] != 'Wykonawca' and $_POST['title'] != 'Autor' and $_POST['link'] != 'Link do odsłuchu'){
  5. $name = $_POST['author'] . '-' . $_POST['title'];
  6. $id = 0;
  7. $votes = 0;
  8. $link = $_POST['link'];
  9.  
  10. $connect = mysql_connect('xxx', 'xxx', 'xxx') or die(mysql_error());
  11. mysql_select_db(bassplay_web);
  12.  
  13. $sql = "INSERT INTO pool_top10 (id, name, glosy, link) " .
  14. "VALUES ('$id', '$name', '$votes', '$link')";
  15. $result = mysql_query($sql) or die(mysql_error());
  16. echo ("Utwór dodany poprawnie");
  17. }
  18. else{
  19. echo ("Wypełnij wszystkie pola");
  20. }
  21. ?>
Go to the top of the page
+Quote Post
skowron-line
post 10.09.2011, 15:33:15
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


http://forum.php.pl/index.php?showtopic=23258 tu znajdziesz odpowiedzi na wszystkie pytania dotyczące sqlinjection.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Raven1122
post 10.09.2011, 15:42:48
Post #3





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


no tak ale jesli chodzi o tagi html?
Go to the top of the page
+Quote Post
!*!
post 10.09.2011, 15:51:10
Post #4





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

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


Przejdź na PDO i bindowanie.


--------------------
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
CuteOne
post 10.09.2011, 15:52:01
Post #5





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


A co ma sql injection do tagów HTML?? mówisz o innym rodzaju ataku - google Cross-site scripting(XSS) a do jego anihilacji służy funkcja htmlspecialchars

Ten post edytował CuteOne 10.09.2011, 15:52:41
Go to the top of the page
+Quote Post
Raven1122
post 10.09.2011, 15:54:40
Post #6





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


no dobra juz wiem ze uzyje opcji htmlspecialchars i mysql_real_string_escape ale jak te 2 funkcje uzyc na 1 stringu?
chodzi mi dokladnie o te:
$name = $_POST['author'] . '-' . $_POST['title']; i $link = $_POST['link'];

Ten post edytował Raven1122 10.09.2011, 15:56:47
Go to the top of the page
+Quote Post
!*!
post 10.09.2011, 15:56:07
Post #7





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

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


Kod
funkcja1(funkcja2($ojej))
?

Ten post edytował !*! 10.09.2011, 15:56:19


--------------------
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
Raven1122
post 10.09.2011, 15:58:12
Post #8





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


czyli ma byc:

htmlspecialchars(mysql_real_string_escape($name, $link));
?

Ten post edytował Raven1122 10.09.2011, 16:00:08
Go to the top of the page
+Quote Post
!*!
post 10.09.2011, 15:59:57
Post #9





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

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


Lepiej odwoływać się bezpośrednio do post.


--------------------
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
Raven1122
post 10.09.2011, 16:00:30
Post #10





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


a mozesz pokazac jak to ma wygladac?
Go to the top of the page
+Quote Post
!*!
post 10.09.2011, 16:01:45
Post #11





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

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


Kod
funkcja1(funkcja2($_POST['ojej']))


Brak Ci podstaw php.


--------------------
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
Raven1122
post 10.09.2011, 16:11:59
Post #12





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


czyli tak?
$name = htmlspecialchars(mysql_real_escape_string($_POST['author'])) . '-' . htmlspecialchars(mysql_real_escape_string($_POST['title']));

zrobilem tak jak pisze u gory i dodalem do formularzy tagi <table><td><td> i nic nie zadzialalo
Go to the top of the page
+Quote Post
!*!
post 10.09.2011, 16:17:58
Post #13





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

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


1. Przeczytaj jakiś kurs PHP
2. Sprawdź czy w ogóle dane wysyłasz isset
3. Napisz coś bardziej sensownego niż

  1. if($_POST['author'] != 'Wykonawca' and $_POST['title'] != 'Autor' and $_POST['link'] != 'Link do odsłuchu')

Bo tym sposobem mogę wysłać cokolwiek, prócz tego co wpisałeś? No ale jak tam chcesz.
4. Używaj tagów na forum.
5. W którym miejscu używasz tych funkcji i po czym?
6. Do całkowego usuwania tagów jest strip_tags

Ten post edytował !*! 10.09.2011, 16:20:47


--------------------
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

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: 5.07.2025 - 11:18