나는 내 데이터베이스mysqli_connect()가 암호화되지 않은 암호 매개 변수를 받아야하는 이유는 무엇입니까?
CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'my_pass';
GRANT ALL PRIVILEGES ON * . * TO 'my_user'@'localhost';
FLUSH PRIVILEGES;
패스가 mysql 데이터베이스에서 user 테이블에서 암호화 모드에 저장을 사용하는 사용자를 만들었습니다.
그러나 mysqli_connect() 메서드를 사용할 때 매개 변수로 전달할 때 해당 매개 변수를 가져오고 싶지 않으면 쿼리에 사용한 암호화되지 않은 원래 값을 제공해야합니다. 유명한 "Connect failed : 사용자 'my_user'@ 'localhost'(암호 사용 : YES)에 대한 액세스가 거부되었습니다."
하지만 실제로 데이터베이스 (암호화 된 버전)에 저장된 것과 다른 문자열 값입니다.
어때요? 누군가가 연결을 설정 한 .PHP 파일에 액세스 할 경우 암호화 된 버전을 매개 변수로 제공하는 것이 더 안전하지 않습니까? mysqli_connection이 그것을 받아들이지 않는 이유는 무엇입니까? 그것을 할 수있는 방법이 있습니까?
stackoverflow 또는 다른 사이트에 로그인 할 때 - 평범한 텍스트를 passowrd로 지정하지만 해시에 저장됩니다. 그 (것)들을 붙들 ndb이 타협 된 경우에 해시된다. – nogad
왜 더 안전할까요? PHP 파일 – JimL
에있는 암호로 로그인 할 수 있습니다. 암호화 된 암호가 일반 암호와 마찬가지로 사용될 수 있다면 요점은 무엇입니까? 상상의 mysqli_connect가 암호화 된 패스워드를 받아들이면, PHP 파일을 들여다 본 다음 패스워드를 가져 와서 데이터베이스에 연결하면된다.무엇이 주어 집니까? –