양식 제출 데이터를 암호화 할 수있는 방법에 대해 조사하고 데이터베이스에 안전하게 저장되는지 확인해 달라는 요청을 받았습니다. 양식 제출에는 직원에 대한 개인 정보가 포함되며 보안 유지가 필요합니다.AES_ENCRYPT를 사용하는 가장 좋은 방법은 무엇이며 얼마나 안전합니까?
연구 중에 AES_ENCRYPT()를 발견했으며이 함수를 적용하여 데이터를 데이터베이스에 성공적으로 저장합니다.
예 SQL 문은 내가 사용 :
"INSERT INTO employee (firstname) VALUES (AES_ENCRYPT('$name', '$encryption_key'))"
그러나, 나는이 지역에서 매우 제한된 지식을 가지고 있고이 데이터가 해킹 방지하기 위해 충분한 충분한 보호가 확실하지 않다. 어떤 수준의 보안이 제공합니까? 내가 놓친 것이나 구현을 개선하는 데 사용할 수있는 다른 기술이 있습니까?
또한 암호화 키를 별도의 PHP 파일에 저장했지만 권장되는 저장 방법을 모르겠습니다. 이것에 대한 조언을 많이 주시면 감사하겠습니다.
죄송합니다.이 질문이 모호하거나 광범위하면 죄송합니다. 나는이 분야에서 완전한 초보자이다. 필요한 경우 더 많은 정보를 제공해 드리겠습니다.
[SQL 주입] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)의 영향을받는 경우 암호화는 무의미합니다. [prepared statements] (http://php.net/manual/en/pdo.prepared-statements.php)를 사용하여 쿼리를 작성해야합니다. –
질문에있는 코드의 양을 줄이기 위해 진술을 단순화했지만 다음을 사용했습니다 : $ stmt = $ conn-> prepare ("INSERT INTO employee (firstname) VALUES (AES_ENCRYPT (?, '$ encryption_key'))") ; $ stmt-> bind_param ("s", $ name); – Jade
좋습니다. 좋을지도 모릅니다. –