2014-05-17 4 views
1

사용자 이름과 암호 테이블을 확인하기 위해 쿼리를 사용하는 대신 권한 부여가 SQL Server 연결에 의해 결정되지만 일반 사용자 이름/암호 로그인 시스템이 있습니다. PHP 암호 세션 변수 암호화

$connectionInfo = array("UID" => $usr, "PWD" => $pwd, "Database" => $db); 
$oLink = sqlsrv_connect($Server,$connectionInfo); 

나는 이미 모든 (I에 대한 안전 느끼지 않는다) 사용자 이름과 암호를 개최 세션 변수 의도 한대로 작업을 설정할 수 있습니다. 암호 세션 변수에 암호화를 추가하고 권한 부여 설정과 함께 작동시키는 방법을 구현하는 방법이 있습니까?

$usr = $_SESSION['USERNAME']; 
$pwd = $_SESSION['PASSWORD']; 

감사합니다!

+0

[세션 도용] (https://en.wikipedia.org/wiki/Session_hijacking)에 대해 더 걱정할 수 있으며 보안 암호 저장/검색 시스템 사용에 집중하십시오. 당신은 그런 방법을 사용해서는 안됩니다. –

+0

1) 왜 세션에 암호를 저장하고 있습니까? 2) 왜 그게 안전하지 않다고 생각하니? – deceze

+0

다른 데이터베이스에 연결하는 여러 페이지가 있습니다. 일부 데이터베이스는 특정 사용자 만 액세스 할 수 있도록 허용하므로 이러한 데이터베이스에 연결하는 각 페이지는 다른 $ db 변수를 사용하여 인증을 수행합니다. 나는 이것이 사용자 이름/암호로 db 테이블 검사에 반대되는 인증을 위해 서버 연결을 사용할 때 처리해야만하는 것 같아요. – theflarenet

답변

0

당신이 당신의 방법 사용을 주장한다면, md5 또는 sha256을 사용해보십시오.

예 : $ newpassword = md5 ($ pwd); $ newpassword가 암호화됩니다.

그러나 두 암호가 일치하면 암호가 일치하도록 저장된 암호도 암호화해야합니다.

PS : md5는 더 이상 신뢰할 수있는 암호화 방법이 아니므로 sha256 이상을 사용해보십시오.

+0

그러나 $ pwd를 암호화하고 새로운 encrytped $ newpassword를 사용하여 데이터베이스에 연결하면 암호화 된 문자열은 $ connectionInfo = array ("UID"=> $ usr, "PWD"=> $ pwd, "Database"=> $ db); $ oLink = sqlsrv_connect ($ Server, $ connectionInfo); – theflarenet

+0

여기에있는 것과 같은 ecryption 해독 방법을 사용할 수 있습니다. http://runnable.com/UmmNdePavBUxAABZ/php-mcrypt-basic-encryption-and-decryption-of-a-string 세션의 암호를 암호화 한 다음 해독합니다 연결 정보에서 사용하기 전에 – mazenbr

+0

와우. 이것은 아주 청초한 재료입니다. 고맙습니다! – theflarenet