Autor | Zpráva | ||
---|---|---|---|
cocroach Profil * |
#1 · Zasláno: 13. 3. 2018, 23:19:48
ahoj, když napíšu toto
http://localhost/balls.php?name=%3Cscript%3Ealert(%27njected%27)%3C/script%3E ...ted když se na to dívám... tamto nahoře jsme zkopíroval z prohlížeče tak tam sou procenta ale napsal jsem tam toto: http://localhost/balls.php?name=<script>alert('injected')</script> |
||
JetamCZ Profil |
#2 · Zasláno: 13. 3. 2018, 23:27:08
Je tomu tak, že se jedná ochranu proti xss. Je to hlavně z důvodu bezpečnosti. Pokud se chceš dozvědět více o této problematice doporučuji přednášky od Michala Špačka o XSS a webové bezpečnosti. Jinak určitě uvidíš důvod zablokování v konzoli prohlížeče (F12).
řešením je posílat třeba v url balls.php?script=1 a pak řešit pomocí php <?php if($_GET['script']==1){ echo "<script>alert('injected')</script>"; } ?> |
||
Keeehi Profil |
#3 · Zasláno: 14. 3. 2018, 07:43:14
O ochranu proti xss se nejedná. To, proč to prohlížeč přepíše je z důvodu, že tam jsou znaky, které v URL být nemůžou. A aby bylo možné tyto znaky dostat na server, je potřeba je zakódovat. Nicméně server si to zase dekóduje, takže se k němu dostane to, co jsi původně napsal.
To, proč ti to nefunguje je kvůli tomu, že tímto způsobem se javascriptu nespouští. To že část URL by se dala interpretovat jako javascript prohlížeč nezajímá. Nemá jediný důvod prohledávat URL a něco v ní spouštět. Samotná URL tedy nestačí. Je potřeba, aby se tebou zadaný vstup objevil na stránce. Tedy aby tomu pomohlo PHP. V balls.php musíš mít někde echo $_GET['name']; Ovšem novější Chrome má XSS auditor (jiné prohlížeče mají něco podobného) který zkoumá URL adresu a pokud v ní je něco podobného javascriptu a něco takového se objeví i na stránce, pak takový obsah nepustí. |
||
Časová prodleva: 6 let
|
0