Jak se chránit pro XSS útoku na php serveru?

Jak se chránit pro XSS útoku na php serveru?
« kdy: 10. 10. 2019, 07:32:30 »
Chci se zeptat jestli stačí ze vstupních dat formuláře na straně serveru odstranit znaky &, <, > a lomítka. Data se ukládají do txt souboru, takže nepoižívám sql příkazy. Nebo jak předejít útoku XSS.



Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #2 kdy: 10. 10. 2019, 09:24:55 »
Tomu bych se chtěl vyhnout. Co se stane, když uživatel začne odesílat hromadu značek jako: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& nedojde zachvíli k tomu, že budu mít tolik množství textu, které budu muset analyzovat? To bude zpomalovat běh serveru a zbytečně zabírat místo na disku. Jenom ta sekvence nahoře zabrala 455 znaků. Došlo k pětinásobnému prodloužení textu. Proto bych ty znaky buďto rád odstranil, aby je nebylo možné použít nebo zastavil uživatele, že použil nepovolené znaky. Nechci ukádat věci, které nepoužívám.
« Poslední změna: 10. 10. 2019, 09:28:56 od exkalibr »

Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #3 kdy: 10. 10. 2019, 09:27:39 »
tvl místo na disku resit v roce 2019 pokud jde o user input a ne media?
Děkuji za možnost editace příspěvku.

Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #4 kdy: 10. 10. 2019, 09:33:54 »
tvl místo na disku resit v roce 2019 pokud jde o user input a ne media?

Jenže se nejedná o placený hosting kde máš 5 GB prostoru, ale hosting zdarma s omezeným množstvím prostoru. Vždycky je lépe mít méně dat než více, urychluje to hledání v textu.
« Poslední změna: 10. 10. 2019, 09:37:49 od exkalibr »


Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #5 kdy: 10. 10. 2019, 10:00:03 »
stejne... vis kolik stran textu se vejde do 1MB? To je naprosto irelevantni tohle resit. To je jako kdybys setril misto v mysql tim, ze nepouzijes utf8mb4 ale misto toho tam budes sypat jen ascii.
Děkuji za možnost editace příspěvku.

Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #6 kdy: 10. 10. 2019, 10:06:43 »
Zkus zacit pouzivat framework, ktery XSS ochranu udela za tebe.
Treba Laravel, to je opajcovany Spring Boot a funguje pekne.

Pouzivat dneska hole PHP mi prijde krapet nerozum.

Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #7 kdy: 10. 10. 2019, 11:47:41 »
stejne... vis kolik stran textu se vejde do 1MB? To je naprosto irelevantni tohle resit. To je jako kdybys setril misto v mysql tim, ze nepouzijes utf8mb4 ale misto toho tam budes sypat jen ascii.

Nedávno mi odpověděla jedna čtenářka mé stránky a dobře jsme si rozuměli. Za pár dnů (asi 3 dny jsme si vyměnili velmi mnoho vzkazů). Co jsem poslal já bylo na 9 stránek textu, ona 3. V utf8 41672 a 12554. Bylo to za tři dny a s několika zkrácenýma odkazama. Pokud by někdo tímhle tempem pokračoval měsíc zabere jeden soubor 416720 bajtů. 409kB. U webzdarma se píše že mají kapacitu 200-500mB jenže 200 a 500 je dost velký rozdíl. Kdybych psal např. seznamku kde si lidi mohou často psát, tak by ten prostor brzo došel, to je jasné. Ale zase na druhou stranu, jen teoreticky, jelikož bych dělal takovou věc zadarmo jako neplacenou službu a na neplacené stránce, tak bych to nějak omezit musel, jak délku textu tak celkové množství. Řešit to prostě vymazáváním zpráv jednou za čas. S tím se nic nedá dělat místo je omezené.

Ale mě jde o ten princip, že když se někdo rozhodne spamovat tak tam nacpe plno těch &&& a bude to zabírat mnoho textu, ale i samotným zpracováváním takových zpráv se ubírá rychlost, protože je delší a když chceš v textu něco vyhledat bude to trvat déle (například člověk může chtít aplikovat vyhledávání sprostých slov, jenže to nebude fungovat, když tam budou tyhle zástupné značky).

Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #8 kdy: 10. 10. 2019, 11:51:48 »
Zkus zacit pouzivat framework, ktery XSS ochranu udela za tebe.
Treba Laravel, to je opajcovany Spring Boot a funguje pekne.

Pouzivat dneska hole PHP mi prijde krapet nerozum.

Jestli si za to placený tak ho používej. Já jsem jen víkendový programátor, takže na učení se takových srandiček jako mysql a frameworky nemám čas. To už by mi nezbyl čas na nic. Prostě bych chtěl jen tu ochranu a tedy na s 98%-ní jistotou mohou říct, že to takhle udělám, že zakážu tyhle znaky. Plus jsem četl že taky uvozovky dokážou udělat spoustu neplechy. Ale uvozovky se daj jednoduše v utf8 nahradit za jiné znaky, který by v HTML/JS neměly mít ničivý účinek.

Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #9 kdy: 10. 10. 2019, 12:09:07 »
Zkus zacit pouzivat framework, ktery XSS ochranu udela za tebe.
Treba Laravel, to je opajcovany Spring Boot a funguje pekne.

Pouzivat dneska hole PHP mi prijde krapet nerozum.

Jestli si za to placený tak ho používej. Já jsem jen víkendový programátor, takže na učení se takových srandiček jako mysql a frameworky nemám čas. To už by mi nezbyl čas na nic. Prostě bych chtěl jen tu ochranu a tedy na s 98%-ní jistotou mohou říct, že to takhle udělám, že zakážu tyhle znaky. Plus jsem četl že taky uvozovky dokážou udělat spoustu neplechy. Ale uvozovky se daj jednoduše v utf8 nahradit za jiné znaky, který by v HTML/JS neměly mít ničivý účinek.

S tímhle přístupem si strašně naběhneš...

Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #10 kdy: 10. 10. 2019, 12:18:28 »
S tímhle přístupem si strašně naběhneš...

Nechci ztratit celý život programováním. Programování webových stránek je až příliš komplexní. V normální firmě, kde dostanou zakázku na naprogramování webu, je to něco jiného. Tam máš na to obvykle aspoň 3-4 lidi, designera, kodéra a programátora v php, plus případně experta na db. Jenže tihle lidi jsou od toho placení a dostávaj nadprůměrný mzdy za nadprůměrný výkony. Takže to co mohu nabídnout zdarma logicky nemůže být na stejný úrovni. Byl bych rád, kdyby to už konečně lidi co se věnují programování profesionálně, pochopili. Na své stránce třeba skoro vůbec neřeším design, protože na to nememám čas. Ten čas je vymezený a cíl je vymezený. Vždyť to takhle funguje i ve firmě - s omezenými prostředky uděláš omezenou věc.

Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #11 kdy: 10. 10. 2019, 12:41:19 »
S tímhle přístupem si strašně naběhneš...

Nechci ztratit celý život programováním. Programování webových stránek je až příliš komplexní. V normální firmě, kde dostanou zakázku na naprogramování webu, je to něco jiného. Tam máš na to obvykle aspoň 3-4 lidi, designera, kodéra a programátora v php, plus případně experta na db. Jenže tihle lidi jsou od toho placení a dostávaj nadprůměrný mzdy za nadprůměrný výkony. Takže to co mohu nabídnout zdarma logicky nemůže být na stejný úrovni. Byl bych rád, kdyby to už konečně lidi co se věnují programování profesionálně, pochopili. Na své stránce třeba skoro vůbec neřeším design, protože na to nememám čas. Ten čas je vymezený a cíl je vymezený. Vždyť to takhle funguje i ve firmě - s omezenými prostředky uděláš omezenou věc.

Což nic nemění na tom, že si naběhneš.  Prostě se pohybujeme v komplexní doméně, kde se potkává řada technologií a konceptů, a s tím se nedá nic dělat.

Mlocik97

  • *****
  • 906
  • Ubunťák, JS dev.
    • Zobrazit profil
    • E-mail
Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #12 kdy: 10. 10. 2019, 12:49:17 »
1. používať retardovaný webhosting, proč? Proč ne normálne IaaS, PaaS? Zadarmo už bežne zoženieš zdielané VPS s vyhradeným 5GB úložiskom, 0.5GB RAM, a 200GB transferom pre jeden projekt / vlákno.
2. používať holé php, proč?
3. Riešiť escaping, když vätšina frameworkov už má Sanitizer v sebe? Proč to nepoužít?
4. Programovať v PHP webstránku? Proč? Však to neumí natívne ani plnohodnotný URL routing. Toto pritom zvláda JS, Golang, Python aj Rust či napr. Perl.
5. Riešiť miesto na disku? WTF? Je to úplne jedno, text sú bajty až kilobajty, miesta sú GB až TB. Aspoň pokiaľ sa nejedná o blbý free hosting.
« Poslední změna: 10. 10. 2019, 12:55:01 od Gabriel Mlocik »

Mlocik97

  • *****
  • 906
  • Ubunťák, JS dev.
    • Zobrazit profil
    • E-mail
Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #13 kdy: 10. 10. 2019, 12:56:10 »
Navyše hodnoty v databázy ani netreba sanitizovať tak jak sa tu popisuje, stačí escapovať 3 znaky... Uvodzovky, apostrofy, a spätnú lomku. Ale bežne teraz framework už obstará kompletný sanitizing.

oss

  • ***
  • 247
    • Zobrazit profil
    • E-mail
Re:Jak se chránit pro XSS útoku na php serveru?
« Odpověď #14 kdy: 10. 10. 2019, 13:59:06 »
Navyše hodnoty v databázy ani netreba sanitizovať tak jak sa tu popisuje, stačí escapovať 3 znaky... Uvodzovky, apostrofy, a spätnú lomku. Ale bežne teraz framework už obstará kompletný sanitizing.
OMG len to nie, toto je amterizmus najhrubsieho zrna. Ano mozno to odradi nejake script kidis ale akonahle pouziju hotovy nastroj, tak ti vyberu celu databazu.