[ 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: 1772
Témy: 35 | 35
Bydlisko: BA - WESTSIDE

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ý: 12.03.17
Príspevky: 708
Témy: 20 | 20
Bydlisko: SK-Martin
Vek: 62

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: 408
Témy: 2 | 2
Bydlisko: Prešov / Pr...

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ý: 12.03.17
Príspevky: 708
Témy: 20 | 20
Bydlisko: SK-Martin
Vek: 62

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: 408
Témy: 2 | 2
Bydlisko: Prešov / Pr...

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


 [ Príspevkov: 5 ] 


Tvorme bezpečnejší web - funkcie strip_tags() a addslashe



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

111

07.05.2014 15:25

matwej

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

311

27.02.2013 11:51

artexe

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

Web hosting control panel pre free web

v Webhosting a servery

0

517

08.07.2011 17:27

adamico

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

344

15.01.2015 9:12

crystalgroup

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

funkcie

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

5

634

15.11.2007 9:57

sento

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

POLYNOMICKE FUNKCIE

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

2

440

17.01.2009 20:48

dianka10

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

excel - funkcie

v Ostatné programy

5

173

20.03.2013 15:56

Winnetou

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

Excel - funkcie

v Ostatné programy

0

158

24.02.2016 10:06

mio

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

API funkcie

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

21

1573

12.09.2008 23:05

stopa27

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

Ajaxove funkcie

v JavaScript, VBScript, Ajax

13

556

11.05.2009 23:01

feko.yxo

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

Ako includovať funkcie

v PHP, ASP

1

166

24.03.2012 18:47

shaggy

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

EXCEL - funkcie, vzorce

v Ostatné programy

0

1009

01.07.2007 21:50

anulikk

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

Kryptografické hašovacie funkcie

v PHP, ASP

11

408

27.04.2009 9:34

rooobertek

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

uzitocne api funkcie

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

4

302

28.02.2010 14:22

euthanan

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

funkcie a premenné

v JavaScript, VBScript, Ajax

6

355

10.04.2009 9:34

Tominator

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

vystup z funkcie

v PHP, ASP

15

513

13.09.2010 19:56

php30



© 2005 - 2017 PCforum, edited by JanoF