Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zabezpieczanie prze SQL Injection
Forum PHP.pl > Forum > Przedszkole
Raven1122
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. ?>
skowron-line
http://forum.php.pl/index.php?showtopic=23258 tu znajdziesz odpowiedzi na wszystkie pytania dotyczące sqlinjection.
Raven1122
no tak ale jesli chodzi o tagi html?
!*!
Przejdź na PDO i bindowanie.
CuteOne
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
Raven1122
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'];
!*!
Kod
funkcja1(funkcja2($ojej))
?
Raven1122
czyli ma byc:

htmlspecialchars(mysql_real_string_escape($name, $link));
?
!*!
Lepiej odwoływać się bezpośrednio do post.
Raven1122
a mozesz pokazac jak to ma wygladac?
!*!
Kod
funkcja1(funkcja2($_POST['ojej']))


Brak Ci podstaw php.
Raven1122
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
!*!
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.