forum.linux.org.ba

  Udruženje Linux korisnika BiH

Niste prijavljeni.

Obavijest

Forum je trenutno u read-only modu. Možete pregledati teme i postove, ali ne i postavljati nove. Još uvijek istražujemo security propust u softveru foruma (blind SQL injection) - adis

#1 2014-06-30 12:59:07

boby
Veteran
Registrovan: 2008-04-14
Posts: 1,390

php login sigurnost

Pozdrav. Na netu ima more tema o tome kako napraviti "sigurniji" login u php-u. Ali sve ima svoje mane i nedostatke. Ako moze savjeti/prijedlozi na kod koji cu pastirati ispod. Hvala.

<?php

session_start();

require_once('mysql.inc.php');

$username = $_POST['username'];
$password = $conf_hash_function($_POST['password']);

$query = $mysqli->stmt_init();
$query->prepare("SELECT id, name, surename FROM workers WHERE username = ? AND password = ?");
$query->bind_param("ss", $username, $password);
$query->execute();
$query->store_result();

if ($query->num_rows == 0) 
{
	header("Location: login.html.php?error=1");
}
else
{
	$query->bind_result($id, $name, $surename);
	$query->fetch();
	$query->close();
	
	$_SESSION['worker_id'] = $id;
	$_SESSION['name_surename'] = $name.' '.$surename;
	header("Location: index.php");
}

?>

mysql.inc.php - sadrzi connect query
$conf_hash_function = sha1, definisano u config fajlu.

Offline

#2 2014-06-30 14:23:36

boby
Veteran
Registrovan: 2008-04-14
Posts: 1,390

Re: php login sigurnost

Naravno, ideja je da ne bude 1000 linija koda samo za login.

Offline

#3 2014-06-30 17:43:57

adioe3
Godwin Moderator
Iz: /dev/null
Registrovan: 2005-09-22
Posts: 1,984
Website

Re: php login sigurnost

Mala checklista za login (i inace stvari koje trebaju bit osigurane):

1. Uvijek al bas UVIJEK stavi sve takve stvari pod SSL (self-signed moze, bitno da je enkriptovano), provjeri ako nije ssl i odma ubij taj attempt (die("Needs more SSL"))
2. Nije losa ideja imat neki anti-bot mehanizam tipa captcha al ne moras je stavit by default nego ako neko ima 3 failed login attempta
3. Ako moguce generisi nonce za takve URLove (http://en.wikipedia.org/wiki/Nonce)
4. Uvijek snimaj hash passworda u bazu (recimo SHA1 ili ljepse SHA256 i iznad)
5. Ukoliko moguce, snimaj kad se ko logiro i sa kog IPa (il recimo zadnjih 10-15 logina) pa koristi GeoIP metode da vidis jel se zemlja promijenila, ako jest posalji covjeku mail da se logiro neko iz tajvana na njegov account
6. Dok PDO ce fino to quoteat vidi da skines sve tagove iz polja radi XSSa (http://www.php.net/manual/en/function.strip-tags.php)

Vjerovatno ima jos stosta sto se moze uradit al eto oto su kao neke osnove.


The only reliable component of any system is the one that isn't there.

Offline

#4 2014-06-30 19:43:07

boby
Veteran
Registrovan: 2008-04-14
Posts: 1,390

Re: php login sigurnost

Thx! O ovom za XSS sam citao to sam mislio svakako dodati. Ovo ostalo cu probati.

Hvala jos jednom.

Offline

#5 2014-06-30 21:13:33

adis
Foo master
Iz: Sarajevo
Registrovan: 2002-11-28
Posts: 1,751
Website

Re: php login sigurnost

Zaboravi na jednoprolazne hash funkcije za šifre, treba ti HMAC, a da ne bi izmišljao toplu vodu koristi:

http://www.openwall.com/phpass/

(Provjeri listu projekata koji koriste phppass!)


Stoji savjet za SSL i login, odnosno koristi Secure Cookies i sl (http://en.wikipedia.org/wiki/HTTP_cooki … nly_cookie)
Pored nefiltriranog korisničkog inputa, veliki broj problema na današnjim web aplikacijama dešava se zbog naivnog korištenja cookija (neenkriptovani cookiji sa lako pogodljivim kritičnim vrijednostima, npr. da u cookie snimite "is_admin=1")
Treća klasa problema dešava zbog javascript-a i "mashupa" javascript biblioteka sa raznih URL-ova, rušeći i privid sigurnosti koji nudi "same origin" javascript policy.

P.S.
Pročešljaj dobro resurse na: https://www.owasp.org/ npr.

https://www.owasp.org/index.php/Clickjacking
https://www.owasp.org/index.php/List_of … TP_headers
https://www.owasp.org/index.php/SecureFlag
https://www.owasp.org/index.php/Cross-S … %28CSRF%29


"Ubuntu" - an African word meaning "Slackware is too hard for me".

Offline

#6 2014-07-01 08:28:58

boby
Veteran
Registrovan: 2008-04-14
Posts: 1,390

Re: php login sigurnost

Nisam znao za ovaj phppass, definitifno cu pogledati (sad sam samo preletio preko teksta). Sa kukijima nisam bas ni vjest, ali mislim da ih necu ni koristiti za sada. Pogledacu i ovo ostalo.

Hvala puno.

Offline

Board footer