Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Skúsený užívateľ
Skúsený užívateľ
Tvorme bezpečnejší web - funkcie strip_tags() a addslashe

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 23.04.2007 21:34

evTOM ma požiadal o vysvetlenie dvoch funkcií, ktoré som spomenul v nejakej téme. Určite bude dobré, ak si to prečítajú aj ostatní. Takže tu je:

Každá aplikácia sa musí brániť pred útokmi zvonku. Takéto útoky na webové aplikácie sa najčastejšie robia dvomi formami (ak nerátame sociálne inžinierstvo, tj. lákanie citlivých dát od ľudí na falošné emaily a pod): XSS (Cross-site scripting) a SQL Injection.

XSS - útoky sa vykonávajú najčastejšie vložením kúsku Javascriptového kódu. Ten, aby sa vykonal, musí byť uzavretý do značiek <script> a </script>. Preto musíme všetky dáta, ktoré ukladáme do databázy, alebo inak zobrazujeme na stránke (tj. všetky, ktoré nejdú priamo z PHP kódu, ale z formulárových polí, databáz a pod.) "prefiltrovať" a odstrániť z nich nechcené HTML tagy (predovšetkým <script> ale aj iné, škodiť sa dá hociako). Funkcia strip_tags() tieto tagy odstráni (druhým jej nepovinným parametrom sú tagy, ktoré sú povolené, tj. dá sa nastaviť, aby napr. komentujúci mohol vložiť tučný text a pod. Viac v PHP manuáli).

SQL Injection - tieto útoky smerujú pochopiteľne na databázu. Využívajú fakt, že SQL používa znak apostrofu ako hraničný znak v reťazcoch a pod. Akonáhle pri spracúvaní požiadavky SQL narazí na apostrof, spracúva dáta, až kým nenarazí na druhý apostrof. Potom začne vykonávať nasledujúce príkazy v SQL požiadavke. Je veľmi jednoduché do nejakého reťazca vložiť napr: '1; DELETE FROM nejaka_tabulka'. Takáto SQL požiadavka by znamenala vymazanie celej tabuľky. Preto sa používa funkcia addslashes() (pozor, ak máš nastavenú direktívu MAGIC_QUOTES_GPC na "on", funkcia addslashes() sa automaticky aplikuje na všetky dáta pochádzajúce z GET, POST a COOKIE, preto už netreba addslashes používať). Táto funkcia vloží pred každý "problematický" znak (nie len apostrof, ale aj úvodzovky a spätné lomítko) tzv. escape sekvenciu - jedno spätné lomítko. Databázový stroj potom s takto escapovaným apostrofom narába ako s každým iným bežným znakom. Ako som už spomínal, ak máš nastavené magic_quotes_gpc na hodnote "on", netreba addslashes používať. Ale pozor - stačí jeden neohlásený zásah admina a nebezpečenstvo je na svete. Pre úplnosť dodám, že existuje funkcia stripslashes(), ktorá tie escapovacie spätné lomítka z textu odoberie a vráti ho do pôvodného stavu. To sa používa, keď dáta zobrazuješ.

Toto rozhodne nie je všetko, čo by mal človek o bezpečnosti svojich aplikácií vedieť, je toho omnoho viac. Ja sám nie som bohvieaký expert na bezpečnosť. Rozhodne odporúčam si o tom niečo prečítať, či už na nete, alebo napr. v tejto knihe (nie je zbytočne zdĺhavá, autor hovorí jasne a k veci, skutočne to nie sú vyhodené peniaze).

Ak máte ešte nejaké otázky, niečo na doplnenie, prípadne som niečo povedal zle, je tu priestor na diskusiu...







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Tvorme bezpečnejší web - funkcie strip_tags() a addslashe

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok NapísalOffline : 24.04.2007 9:24

p360t píše:
... Preto sa používa funkcia addslashes() (pozor, ak máš nastavenú direktívu MAGIC_QUOTES_GPC na "on", funkcia addslashes() sa automaticky aplikuje na všetky dáta pochádzajúce z GET, POST a COOKIE, preto už netreba addslashes používať). ...

Len predpokladám, že pri nastavení direktívy MAGIC_QUOTES_GPC na "on", sa nič nestane ak pre istotu použijem ešte aj ja funkciu addslashes(),
môžeš mi to potvrdiť?


Offline

Skúsený užívateľ
Skúsený užívateľ
Tvorme bezpečnejší web - funkcie strip_tags() a addslashe

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 404
Témy: 2
Bydlisko: Prešov / Pr...
Príspevok NapísalOffline : 24.04.2007 10:31

Stane, budú sa ti to dvojnásobne backslashovať. Preto bude potom text s úvodzovkami napríklad "text" vyzerať takto: \\\"text\\\" namiesto \"text\"


Offline

Užívateľ
Užívateľ
Tvorme bezpečnejší web - funkcie strip_tags() a addslashe

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25
Bydlisko: SK-Martin
Príspevok NapísalOffline : 24.04.2007 13:06

tak ako to mám riešiť, aby som to mal zabezpečené aj v prípade, že admin servera inkriminovanú funkciu vypne (hoci omylom, alebo len dočasne) ?
môžem to riešiť nejakou podmienkou (if) ?


Offline

Skúsený užívateľ
Skúsený užívateľ
Tvorme bezpečnejší web - funkcie strip_tags() a addslashe

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 404
Témy: 2
Bydlisko: Prešov / Pr...
Príspevok NapísalOffline : 24.04.2007 13:20

Dá, ja na to používam funkciu:
Kód:
function add_slashes($str) {
  return (get_magic_quotes_gpc() ? $str : addslashes($str));
}


Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Java Web Service, pouzivanie funkcie

v Assembler, C, C++, Pascal, Java

1

297

07.05.2014 15:25

matwej Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hľadáme programátora web stránok a web aplikácií

v Ponuka práce

0

737

27.02.2013 11:51

artexe Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Web hosting control panel pre free web

v Webhosting a servery

1

1066

06.04.2019 8:05

rukitinc Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hľadáme (1.) web dizajnéra a (2.) web kódera - na dlhodobú spoluprácu / práca z domu

v Ponuka práce

0

779

15.01.2015 9:12

crystalgroup Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. funkcie

v Assembler, C, C++, Pascal, Java

5

869

15.11.2007 9:57

sento Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel - funkcie

v Ostatné programy

0

424

24.02.2016 10:06

mio Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. excel - funkcie

v Ostatné programy

5

440

20.03.2013 15:56

Winnetou Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. API funkcie

v Assembler, C, C++, Pascal, Java

21

1978

12.09.2008 23:05

stopa27 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ajaxove funkcie

v JavaScript, VBScript, Ajax

13

811

11.05.2009 23:01

feko.yxo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. POLYNOMICKE FUNKCIE

v Assembler, C, C++, Pascal, Java

2

737

17.01.2009 20:48

dianka10 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. web kamera & web

v Video programy

4

858

29.12.2007 13:22

jablko05 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kryptografické hašovacie funkcie

v PHP, ASP

11

648

27.04.2009 9:34

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako includovať funkcie

v PHP, ASP

1

350

24.03.2012 18:47

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. uzitocne api funkcie

v Assembler, C, C++, Pascal, Java

4

712

28.02.2010 14:22

euthanan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. funkcie a premenné

v JavaScript, VBScript, Ajax

6

590

10.04.2009 9:34

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vystup z funkcie

v PHP, ASP

15

830

13.09.2010 19:56

php30 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra