그래서 여기에는 2 가지 문제가 있습니다. 1) 사용자가 서버 측 PHP/데이터베이스에 POST 업데이트를 발행하는 것을 인증합니다. 2) 데이터베이스 자격 증명이 노출되지 않도록 방지합니다.
1) LDAP와 같은 타사 통합 서버로 사용자를 인증하고 있습니까?
2) 서버 자격 증명은 필요하지 않으므로 애플리케이션에 저장하면 안됩니다. 사용자와 요청을 인증하면 서버 측 PHP는 DB 자격 증명을 암호 해독하고 사용자가 제출 한 정보를 기반으로 SQL 문을 발행하는 보안 기능을 가져야합니다.
질문에 대답하려면 네, 들어오는 요청을 처리하기 위해 서버 측 프레임 워크를 호스트하는 것이 가장 좋습니다. 그러면 사용자를 인증 한 다음 요청을 실행합니다.
데스크톱 응용 프로그램에서 DB를 직접 업데이트 할 수있게하려면 (권장되지 않음) DB 자격 증명의 암호화 된 해시를 저장하고 해독 알고리즘을 사용하여 해독 한 다음 데이터베이스로 보낼 수 있다고 가정합니다.
<?php
if(isset($_POST['query'])) {
$query = $_POST['query'];
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
//Execute SQL
if($mysqli->query($query) === TRUE) {
$mysqli->close();
echo "successful";
} else { echo "SQL execution error"; }
} else {
echo "invalid query string";
}
?>
인증은 별개의 문제입니다. (누가 내 요청에 문제를 제기하든 상관 없으므로) 그렇지만 # 2는 내가 얻었던 것입니다. 해시를 저장하는 한 서버에 암호 해독 알고리즘을 저장하지 않으면 여전히 안전하지 않습니다. – sdasdadas
사실입니다 ... PHP가 서버에 설치되어있는 경우 데스크톱 응용 프로그램에서 생성 된 _POST [ 'query'] 문자열을 받고 해당 서버에 저장된 데이터베이스 자격 증명을 사용하여 실행하는 간단한 PHP 페이지처럼 간단 할 수 있습니다 측면. – jamis0n
가장 단순한 PHP 페이지로 답변을 업데이트했습니다. :) – jamis0n