Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Escapowanie danych.
Forum PHP.pl > Forum > Przedszkole
-Havok-
Witam,

Mam problem z escapowaniem danych, bo nie do końca wiem których funkcji używać w jakich sytuacjach. Także prosiłbym o pomoc w wytłumaczeniu, o ile można smile.gif Z góry dziękuję wszystkim, którzy zechą mi pomóc smile.gif

Znam funkcje: mysql_real_escape_string, htmlspecialchars, strip_tags, addslashes, stripslashes.

Chciałbym udostępnić formularz w którym można coś opisywać z użyciem kilku tagów html (np. b, i, u, kolor, itp.)
a) wysyłanie do bazy tylko z użyciem mysql_real_escape_string? Czy może użycie jeszcze addslashes czy coś?
cool.gif wyciągnięcie z bazy danych i wyświetlenie tego na ekranie - jeżeli nie będę używał addslashes, to nie muszę też używać stripslashes, czy jednak muszę z powodu użycia mysql_real_escape_string?
c) wyświetlenie tych samych danych w innym miejscu z usunięciem wszystkich tagów html. Czy samo strip_tags wystarczy? Co w przypadku, gdy user zapomni o jakimś tagu lub skrypt go nie domknie (np. tinymce)

Prosiłbym o odpowiedzi na pytania, jak i własne rady co najlepiej stosować.

Jeszcze raz dziękuję wszystkim, którzy zechcą mi pomóc smile.gif

Pozdrawiam
viking
PDO + htmlpurifier
-Havok-
PDO nie umiem, a zewnętrznych, dodatkowych skryptów nie chcę używać. Więcej będą one ważyć, niż cały mój skrypt. A z racji, że jest to bardziej dla początkujących, to wolałbym się jednak dowiedzieć co nieco więcej na temat wymienionych funkcji i ich użytkowania. Nie bez powodu o nich pisałem smile.gif
viking
To idealny moment żeby się nauczyć, zwłaszcza prepared statements smile.gif Co to znaczy ważyć? Nie przesyłasz tego do przeglądarki żeby to miało jakiekolwiek znaczenie. A lepiej zastosować gotowy, dobry skrypt niż później płakać że lukę mieliśmy.
-Havok-
Mam zacząć uczyć się czegoś innego nie znając nawet podstawowych sposobów zabezpieczania skryptu? Pomyślane rozwiązanie... Nadal jednak wolałbym, gdyby ktoś mógłby wytłumaczyć różnice i zalecane praktyki odnośnie tych funkcji.
Niktoś
Ależ tych funkcji(mysql_real_escape_string,stripslashes,addslashes) w PDO już nie używasz.PDO jest zacznie lepsze od protokołów mysql,mysqli.
Więc jak zaczynasz naukę to może ucz się o tym co jest lepsze, tak jak co niektórzy Forumowicze wspominali wcześniej.
viking
I uwierz mi że dla bezpieczeństwa będzie to dużo lepsze niż to co proponujesz. Tu zapomnisz, tam źle użyjesz. Tym bardziej że jak PDO czy klasy źle wykorzystasz dostaniesz wyjątek albo fatal error co najwyżej. I już widzisz jaki masz problem a nawet nie zacząłeś. Przy PDO te wszystkie funkcje wyrzucasz do kosza.

Przy okazji może warto zastanowić się nad textile, markdown.
-Havok-
Dziękuję za Waszą pomoc, jednak odpowiedzi na swoje pytania nie uzyskałem. Mam nadzieję, że nie macie takiego podejścia do swoich klientów ("Poproszę kawę" - "Podaję herbatę - jest zdrowsza").

Chętnie przeczytam uwagi innych osób na ten temat i na temat funkcji o których chciałem się czegoś więcej dowiedzieć.
Korab
Pozwolę sobie dodać pytanie od siebie a propos tego tematu: czy funkcja sprintf() wystarczy do "zabezpieczania" zapytań do bazy?
-Havok-
A ja pozwolę sobie odświeżyć temat. Może znalazłby się ktoś, kto chciałby to wytłumaczyć?
IProSoft
Możesz użyć np :

  1. $dane = strip_tags($dane, "<img><div><span><p><a>");

+

a podczas wyświetlania


Ale tak jak poprzednicy radzę zainteresować się PDO, trochę potrwa zanim się nauczysz ale efekt będzie dużo lepszy.

ciekawskiii
Denerwujecie z tym PDO i to w wielu tematach a to dzial dla poczatkujacych, rownie dobrze mozecie napisac poczatkujacym zeby napisali portal spolecznosciowy.
PDO jest trudne, zajmuje 2 albo 3 razy wiecej kodu wiec po co ciagle kazecie sie uczyc tego poczatkujacym? Zreszta zadnych zalet w PDO nie widze, wystarczy dobra funkcja do filtrowania danych i jest to samo. Zaleta , ze PDO jest szybsze? Akurat to jest potrzebne komus kto raczkuje w php

IProSoft
Cytat(ciekawskiii @ 28.05.2012, 17:06:58 ) *
Denerwujecie(...)


Bardzo nie lubię pisać odpowiedzi nic nie wnoszących do tematu ale tym razem pokusa jest wieksza.
Nic nie wnosisz do tematu, nie próbujesz pomóc w żaden sposób więc wydaje mi się, że pisanie takich postów jest trochę nie na miejscu.

Cytat
Akurat to jest potrzebne komus kto raczkuje w php

A czy autor tematu jest ekspertem w tej dziedzinie?
k_@_m_i_l
Dlaczego nie uczyć się czegoś co jest dobre ?
Nikt nie mówił, że programowanie jest łatwe. A jak ktoś chce iść na łatwiznę i pomijać pewne kwestie, to niech odpuści sobie zabezpieczanie aplikacji, bo nie ma rzeczy których nie da się złamać. Pdo Cię dużo lepiej zabezpieczy przed potencjalnym zagrożeniem.
Więc to "Wy - przeciwnicy pdo" narzekacie, że ktoś Wam każe uczyć się czegoś trudnego.
Prędzej czy później przyjdzie chwila, że będziesz musiał użyć pdo i sam zobaczysz ile to dobrego wnosi.
I pomyślisz sobie: "Jaki głupi byłem, mogłem się tego pdo uczyć od razu" biggrin.gif

Poza tym, polecam do nauki pdo:
http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO
http://webhelp.pl/artykuly/obsluga-baz-danych-za-pomoca-pdo/

Ale jak tak bardzo chcesz o tym filtrowaniu danych, to poczytaj to:
Temat: SQL Injection Insertion
Temat: Bezpieczenstwo skryptow PHP
ciekawskiii
Co niby dobrego wnosi PDO? nie widze zalet jak juz pisalem.
Duzo lepiej zabezpieczy przed zagrozeniami? w zaden sposob.

A co do nic nie wnoszenia do tematu - odsylanie do nauki PDO tez nic nie wnosi do tematu.
k_@_m_i_l
Jak pdo tak bardzo gryzie to polecam:
http://www.slideshare.net/kkotowicz/owasp-sql-injection
Rysh
Dajcie spokój chłopak ma pewnie na serwerze jakieś PHP 3, dlatego pyta o takie metody smile.gif
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.