Ako chrániť proti XSS – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Ako chrániť proti XSS – PHP – Fórum – Programujte.comAko chrániť proti XSS – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Lukáš
~ Anonymní uživatel
275 příspěvků
5. 9. 2016   #1
-
0
-

Ahojte, hľadal som na internete postupy, ako zabezpečiť stránku, či formuláre voči XSS útokom. Chcel by som vedieť, ako je to najlepšie, povedzme, že máme takýto formulár..
HTML: 

<form class="login-form" method="post" action="index.php">
      <input type="text" name="Username" placeholder="Meno"/>
      <input type="password" name="Password" placeholder="Heslo"/>
      <button type="submit" name="odoslat">PRIHLÁSIŤ</button>
    </form>

PHP:  

<?php 
include("functions.php");
session_start();
 if(isset($_POST['odoslat'])){
    $username = ($_POST['Username']);
    $password = ($_POST['Password']);
    $login_check = mysqli_query($con,"SELECT `UserID` FROM `Users` WHERE `Username`='$username' AND `Password`='".sha1($password)."'") or die (mysqli_error());
    if(mysqli_num_rows($login_check) == 0){ 
      $echo = "Nesprávna kombinácia mena/hesla!";  
    }else{ 
        $get_id = mysqli_fetch_assoc($login_check);
        $_SESSION['uid'] = $get_id['UserID'];
        $today = date("Y-m-d H:i:s");
        $t = file_get_contents("prihlasenia.txt");
      $t .= $today." Používateľ ".$username." "."sa prihlásil!"."\r\n";
      file_put_contents("prihlasenia.txt",$t);
       header("Location: system.php");           
      }       
    }
  ?>

Samozrejme, že k sha1 by sa mohol pridať ešte salt, no zaujíma ma tá bezpečnosť, našiel som niečo ako htmlspecialcharts, no i tam bolo povedané, že je slabé voči XSS, čo by som mal do scriptov doplniť? Vďaka.. prípadne, salt definovať v functions.php a ako ho potom priradiť k sha1? Pripočítať ho? vynásobiť? Čo je lepšie?

 
Nahlásit jako SPAM
IP: 84.16.53.–
Reklama
Reklama
5. 9. 2016   #2
-
+1
-
Zajímavé
Kit +

XSS tam nevidim, zato na SQL injection to zranitelne je naprosto ukazkove. Retezec, ktery vkladas do SQL dotazu prvne prozen pres mysqli_real_escape(), nebo lepe ... pouzivej prepared statements: http://php.net/manual/en/mysqli.quickstart.prepared-statements.php 
Heslo muzes solit jak chces, ale SHA1 v dnesni dobe neni vhodne pouzivat pro ukladani hesel, podivej se na funkci password_hash(), ktera je pro toto urcena.

Nahlásit jako SPAM
IP: 82.144.152.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 159 hostů

Podobná vlákna

[C#] 1 proti 100 — založil sh00ter

Co máte proti Microsoftu? — založil Lukáš Chadraba

Ochrana proti robotom — založil Non-Captcha

Třídy v PHP - pro a proti — založil Petr

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý