웹페이지를 나만 볼 수 있게 하고 싶을 때, 관리자만 접근 할 수 있게 아이디와 비밀번호를 설정하고 싶을 때 사용할 수 있는 간단한 소스코드 입니다.
페이지 암호 화 코드
php
<?php
// 이 코드를 페이지 최상단에 배치
function authenticate() {
$username = 'admin';
$hashed_password = '$2y$1K-----해쉬된 비밀번호 입력---hmu4JZUpvaDyui';
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||
$_SERVER['PHP_AUTH_USER'] !== $username ||
!password_verify($_SERVER['PHP_AUTH_PW'], $hashed_password)) {
header('WWW-Authenticate: Basic realm="Restricted Area"');
header('HTTP/1.0 401 Unauthorized');
echo '인증에 실패했습니다.';
exit;
}
}$allowed_ips = ['211.211.165.188', '111.111.116.114'];
$is_allowed_ip = in_array($_SERVER['REMOTE_ADDR'], $allowed_ips);
if (!$is_allowed_ip) {
authenticate();
}// 여기서부터 기존 페이지 코드 시작
?>
코드 설명
1차 아이디/비번 입력
위와 같이 원하는 페이지에 추가하면 아이디/비밀번호를 입력해야 페이지에 접근 할 수 있습니다. 비밀번호는 해시 된 암호화 된 코드를 입력하면 됩니다.
암호를 해쉬화 하기
아래 코드를 저장 후 웹에서 접속하면 입력한 암호가 해쉬된 코드로 변경되어 보입니다. 아래 코드는 생성 후 삭제하는 것을 권장 합니다.
php
<?php
$password = ""; // 이곳에 사용 할 비밀번호를 입력 후 웹에서 실행 하면 됩니다.
$hashed_password = password_hash($password, PASSWORD_BCRYPT);
echo $hashed_password;
?>
아이피로 필터링
코드 중 아이피를 입력 하는 곳이 있습니다. 이곳에 자주 사용하는 아이피를 입력하면 아이디/비번 절차를 없이 바로 웹페이지에 접근 할 수 있습니다. 저 같은 경우, 집과 사무실 아이피를 입력 해 두고 편하게 사용하고 있습니다.
php
$allowed_ips = ['211.211.165.188', '111.111.116.114'];
마무리
간단한 코드라 정말 보안을 신경써야 하는 곳에서는 이런 방법을 사용는 것을 권장하지 않습니다.