Kezdőoldal » Számítástechnika » Weblapkészítés » Mire kell figyelni űrlapoknál...

Mire kell figyelni űrlapoknál biztonság szempontjából?

Figyelt kérdés

Olvastam róla sokat, de kíváncsi vagyok a véleményetekre, biztosan tudtok újat mondani.


Az, hogy mondjuk egy random session változó, vagy mysql_real_escape_string az egy dolog, én ennél komolyabb biztonsági tényezőkre gondoltam.


Nekem eddig csak nagyon az alapok vannak meg, annyit csinálok még, hogy van egy felhasználónév és egy jelszó az adatbázisomban. A jelszó kódolva van. Nyilván megszűröm az input mezőket, így sql injection elvileg nem történhet. Vagy igen????


A jelszó és a felhasználónév nem $password és nem $username, hogy ne lehessen hamisítani, és beírni egy php változót szűrés nélkül. Ez hülyeség például????


Akkor, amikor jó a felhasználónév és a jelszó, amit lehívott a kód, elkészít egy session-t a felhasználónévvel, és egy random generált számot szintén session-ként.


Ekkor header-el átvisz a felhasználói oldalra.


Hogyha nincs meg a két session változó, akkor header-el a login.php-ra dob, tehát ezeknek kényszerűen létezniük kell.


Mit lehet még tenni?


Így még valaki írhat egy form-ot a mezőnevekkel és elküldheti get-el url ben nem? Nyilván nem szűrve az sql kódokat. Tehát ha a felhasználó rákattint egy csali linkre, akkor elvileg kaphat sql injectiont úgy, hogy a kép valójában egy rejtett form.


Az sql parancs úgy van megírva, hogy:


$sql = "select * from login where username = '$akárminevűváltozó' " stb....


Az akárminevűváltozó neve ugye nem ismert és nem kitalálható, és elvileg csak ezzel a változóval fogad el az sql kód, de ha mégis valaki kitalálná, és esetleg GET-el küldene el valamit url-ben, akkor vajon jó az a megoldás, hogy ellenőrzöm az url-t, és ha nem csak a megadott értékeket tartalmazza pl: /login akkor átdob a kezdőoldalra?


Ez hülyeség?


Biztosan rengeteg dolog van, amit meg lehet tenni még a biztonság érdekében.



#munkamenet #biztonságos munkamenet
2016. nov. 13. 23:11
 1/6 anonim ***** válasza:

"A jelszó és a felhasználónév nem $password és nem $username, hogy ne lehessen hamisítani, és beírni egy php változót szűrés nélkül. Ez hülyeség például????"


Igen, itt mire gondoltál egyáltalán?


2 session is tök fölösleges, csak erőforrás pazarlás és valóban, ha nem invalidálja ténylegesen a sessiont, akkor abból lehet baj. Hacsak nem mindenhol átirányít ilyenkor, mind egyes oldalon.



Az az sql-t, meg ezeket a speckó változó neveket felejtsd el. Sőt a mysql_real_escape_string-et is és használ PDO-t vagy MySQLi-t rendes, paraméterezett lekérésekkel.

Pl.:

[link]

[link]

2016. nov. 14. 00:45
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:

"Igen, itt mire gondoltál egyáltalán? "


Én így szoktam meghatározni a jelszó és felhasználónév sql lekérdezését:


$valami = $_POST["username"];

$másvalami = $_POST["password"];


$sql = "SELECT * from táblanév where $valami = username stb...


Hogyha a változót úgy írom be, hogy $username és $password, akkor csinál egy form-ot az általam megadott mezőkkel, és csinál egy sql lekérdezést, mert a form-ból egyébként egészen biztosan a $valami és $másvalami változóba fog menni a post tömbből az adat.

Hogyha ezek $username és $password, akkor könnyen kitalálhatók, ebben az esetben készít olyan változókat, amiket nem szűr meg, így sql injectiont tud végrehajtani.



Nem? Én ezzel próbálkoznék, ha a felhasználónév és jelszó mezők egyébként mysql_real_escape_string-gel vannak szűrve.

2016. nov. 14. 10:30
 3/6 anonim ***** válasza:
100%
Az adat POST-ból jön, annak az azonosítóját el kell küldeni a böngészőnek. Hogy milyen változóba teszed, édesmindegy, irreleváns.
2016. nov. 14. 10:36
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
100%

#3 vagyok


Kiegészítés:

Nem a PHP változóid értékét írják át, hanem az adatot, ami POST-ban van.

2016. nov. 14. 10:37
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

1) Használj mysqli-t vagy PDO-t!

2) Ellenőrizd a bemeneteket ÉS/VAGY használj előkészített lekérdezést

3) Hasheld a jelszót!

2016. nov. 14. 10:44
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
A praméteres lekérdezés jó ötlet. A PDO szintaktikát is megtanulom. Előbbinél jó, hogy nincs közvetlen hozzáférés a változóhoz.
2016. nov. 14. 16:26

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!