WordPress 모범 사례에 대한 궁극적인 PHP 보안 체크리스트
게시 됨: 2017-11-03미르사드 / stock.adobe.com
웹사이트 보안 프로세스는 WordPress 사이트를 서버 수준에서 보호하는 방법과 파일 수준에서 사이트를 보호하는 방법을 다룹니다. 하지만 프로그래밍 언어를 보호해야 합니까? 따라야 할 PHP 보안 모범 사례가 있습니까? PHP는 보안이 필요합니까?
예, 그렇습니다.
WordPress 웹사이트를 운영하지만 PHP 코드 보안을 유지하는 데 중점을 두지 않으면 큰 사고가 발생할 수 있습니다.
PHP를 사용하여 WordPress 웹사이트를 개발하면 다음과 같은 많은 이점이 있습니다.
- 초보자가 사용하기에 충분히 쉽고 프로그래밍 전문가에게도 충분히 유연합니다.
- 모든 플랫폼(예: Linux, Windows 등)에서 훌륭하게 작동합니다.
- 또한 WordPress에 매우 친화적입니다.
- 사이트 속도를 향상시킬 수 있습니다.
즉, PHP에 결함이 없는 것은 아닙니다. PHP로 프로그래밍된 애플리케이션은 다음과 같은 위험에 노출될 수 있습니다.
- SQL 주입
- 크로스 사이트 스크립팅
- 노출된 로그인 자격 증명
- 세션 하이재킹
- 스푸핑된 양식
- 그리고 기타 불쾌한 보안 위험
관련: WordPress 사이트의 PHP 버전을 확인하는 방법(및 업그레이드 호환성)
분명히 이것은 WordPress 웹 사이트를 프로그래밍하기 위해 PHP를 사용하려는 욕구를 없애려는 의미는 아닙니다. 이는 매우 안정적이고 유연한 언어이며, 적절하게 보호되면 프로세스를 간소화하는 데 도움이 되는 매우 강력한 도구가 될 수 있습니다.
다음 PHP 보안 체크리스트는 앞으로 프로그래밍 언어와 PHP 기반 애플리케이션의 보안을 유지하기 위해 알아야 할 모든 PHP 보안 모범 사례를 알려줍니다.
WordPress를 위한 최고의 PHP 보안 체크리스트
WordPress 웹사이트를 해커로부터 안전하게 보호하고 싶으신가요? 그런 다음 이를 구축하는 데 사용하는 모든 도구(프로그래밍 언어 포함)가 보안 모범 사례를 준수하는지 확인하는 것은 사용자의 몫입니다. 특히 PHP와 관련된 경우 다음 사항에 세심한 주의를 기울여야 합니다.
- PHP 코딩 모범 사례
- 사이트 백엔드 액세스 제한
- 사용자 계정 관리 및 모니터링
- 데이터 검증, 삭제 및 이스케이프
- 사용자 제출 데이터 및 업로드 모니터링
- 웹 호스트 신뢰성
위의 PHP 보안 체크포인트와 이를 WordPress 개발에 사용하는 방법에 대한 자세한 정보를 원하시면 최고의 PHP 보안 체크리스트를 계속 읽어보세요.
PHP 모범 사례
- PHP7 사용 : 항상 최신 버전의 PHP를 사용하십시오. 함께 사용하는 모든 라이브러리 및 타사 응용 프로그램에도 마찬가지입니다.
- 버전 숨기기 : 귀하가 사용하고 있는 현재 PHP 버전은 귀하의 사이트가 어떤 종류의 취약점에 노출되어 있는지 해커에게 알려줄 수 있으므로, hide_php를 사용하여 헤더에서 이 설정을 끄십시오.
- phpinfo 이름 바꾸기 : 설치에 대한 추가 정보도 숨겨야 하므로 phpinfo.php 파일 이름을 변경해야 합니다.
- 오류 코드 변경 : 사이트 연결에 실패할 때 사용자에게 표시되는 기본 오류 메시지를 변경합니다. 이렇게 하면 다른 사람이 귀하의 IP나 파일 경로에 대한 정보를 볼 수 없습니다. 대신 해당 오류를 직접 기록해 두십시오.
- 시스템 명령 제한 : 일반적인 합의는 PHP에서 셸 기능을 사용해서는 안 된다는 것입니다. 그러나 꼭 필요한 경우에는 사용자 데이터를 포함하지 마세요.
백엔드 보호
- SFTP 사용 : 백엔드에서 파일을 전송할 때는 항상 SFTP를 사용하세요.
- 디렉토리에 대한 액세스 제한 : PHP 애플리케이션의 기본 디렉토리 이름을 변경합니다.
- 세션 경로 구성 : 사이트에 공유 호스팅을 사용하는 경우 서버의 다른 사용자가 세션 데이터를 볼 수 있습니다. 루트 디렉터리 아래에 새 세션 경로를 저장하면 이를 중지할 수 있습니다.
- 별도의 관리자 생성 : 단일 서버에서 둘 이상의 PHP 기반 웹사이트를 실행하는 경우 각각에 대해 완전히 다른 로그인 자격 증명을 가진 별도의 관리자를 사용해야 합니다. 이렇게 하면 교차 사이트 감염을 예방할 수 있습니다.
- 디렉토리를 읽기 전용으로 설정 : 웹에서 액세스할 수 있는 디렉토리를 읽기 전용으로 설정하여 보호합니다.
- 민감한 파일을 디렉터리 외부에 저장 : 민감한 애플리케이션 파일(예: 구성 파일)은 웹에서 액세스할 수 없는 디렉터리에 배치해야 합니다. 그런 다음 PHP 스크립트를 사용하여 라우팅할 수 있습니다.
안전한 사용자 정보
- 모든 비밀번호 암호화 : 이것은 분명하지만 로그인한 모든 사용자뿐만 아니라 비밀번호에도 전반적으로 적용해야 합니다.
- 보안 세션 : 복잡한 세션 ID를 생성하여 세션 하이재킹을 방지합니다. 각 URL에 특수 토큰을 추가할 수도 있습니다.
- 이전 세션 삭제 : 누군가 로그아웃했거나 액세스 권한이 변경된 경우 항상 해당 세션에서 쿠키를 삭제하고 새 세션 ID를 강제 적용하세요.
- 신규 사용자 확인 : 항상 신규 사용자의 신원을 확인하고 그에 따라 접근 권한을 부여합니다. 이는 제한된 페이지에 액세스하려는 경우 특히 중요합니다.
- 조절 사용 : 너무 많은 로그인 실패를 비밀번호 조절로 차단해야 합니다.
사용자의 입력 및 출력 검증
- 입력 유효성 검사 및 삭제 : 알려지거나 알려지지 않은 사용자가 사이트를 통해 전송한 모든 데이터, 파일, URL, 포함된 콘텐츠, CSS 또는 HTML을 검토하고 삭제해야 합니다. 이는 수신할 것으로 예상되는 데이터(예: 사용자 이름에 대한 사용자 이름, 이메일 주소에 대한 이메일 주소 등)만 허용되어야 함을 의미합니다. "FROM" 또는 "WHERE"와 같은 "불량" 단어나 작은따옴표와 같은 구두점을 유지하세요. 이는 누군가가 귀하의 사이트에 악성 코드를 몰래 넣으려고 한다는 신호일 수 있으므로 귀하의 레이더에 감지됩니다.
- 이스케이프 출력 : 사용자 데이터나 파일을 사이트에 게시하기 전에 잠재적으로 위험한 문자와 코드(예: 작은따옴표 또는 <script>)가 통과하지 못하도록 이스케이프 처리되었는지 확인하세요.
- POST 데이터 제한 : 해커가 엄청난 양의 데이터로 사이트를 공격하려는 경우 전송할 수 있는 POST 데이터 양에 대한 제한을 설정하여 이를 막을 수 있습니다. 입력 시간을 제한할 수도 있습니다.
- Register_Globals 비활성화 : 사이트 양식에 어떤 유형의 정보를 제출할 수 있는지에 대한 여지가 있어서는 안 됩니다. 불행히도 Register_globals는 해커에게 그러한 기회를 열어줍니다.
- Magic_Quotes 비활성화 : Magic_quotes 자체는 사이트에 해를 끼치지 않지만 출력된 데이터를 탈출하기 위해 이를 사용하는 사람들은 의도치 않게 취약점을 도입할 수 있습니다.
업로드 모니터링
- 파일 업로드 비활성화 : 항상 가능하지는 않습니다. 하지만 사용자로부터 파일이나 데이터를 받을 필요가 없다면 이 기능을 제거하세요.
- 업로드된 파일 확인 : 사용자가 사이트에 파일을 업로드하도록 허용해야 하는 경우 유해한 삽입이 있는지 파일 콘텐츠를 분석해야 합니다. 바로가기로 파일을 다른 형식으로 다시 저장할 수 있습니다. 여전히 유효한 경우 문제가 발생할 가능성이 적습니다.
- 바이러스 스캐너 사용 : 사이트에서 업로드된 파일을 많이 허용하는 경우 바이러스 스캐너를 설치하는 것이 좋습니다.
보안 웹 호스팅 사용
- 안정적인 호스트 사용: 웹 사이트, 파일, 로그인 영역 또는 프로그래밍 언어를 보호하기 위해 아무리 많은 노력을 기울이더라도 보안은 호스팅 수준에서 시작되어야 합니다. 그렇기 때문에 보안을 우선시하고 특히 PHP7에 대한 지원을 제공하는 안정적인 웹 호스트와 파트너 관계를 맺어야 합니다.
- CDN 확보: 서버 수준에서 보안 위협을 줄이는 또 다른 방법은 CDN(콘텐츠 전송 네트워크)을 확보하는 것입니다. CDN은 전 세계를 돌아다니는 웹사이트의 성능 향상과 가장 관련이 있는 경우가 많지만, CDN은 추가 보호 계층도 제공합니다.
- SSL 인증서 받기: 이는 PHP로 프로그래밍하는지 여부에 관계없이 모범 사례입니다. SSL 인증서는 서버와 방문자의 브라우저 사이에 추가적인 암호화 계층을 추가합니다.
위의 각 사항은 실제로 유효하지만, 귀하가 의존하는 웹 호스팅의 품질이 궁극적으로 사이트의 보안 전략을 성사시키거나 깨뜨릴 수 있으므로 이 특정 사항은 강조할 가치가 있습니다.
특히 PHP7 지원과 같은 구체적인 것을 찾을 때 좋은 점과 나쁜 점을 알아내는 것이 어렵기 때문에 WP Engine 및 Kinsta와 같은 웹 호스트로 시작하는 것이 좋습니다.
관련 항목: WP 엔진 및 Kinsta를 통한 완전 관리형 WordPress 호스팅
WP Engine은 각 호스팅 계획에 PHP7 지원을 포함하는 관리형 WordPress 호스팅 제공업체입니다. 또한 WP 엔진은 PHP Compatibility Checker 플러그인에 대한 특별한 외침과 함께 블로그에서 정기적으로 PHP7 주제를 다룹니다. 이 회사가 PHP7 사용자 지원에 전념하고 있다고 말하는 것은 절제된 표현일 것입니다.
또 다른 관리형 WordPress 호스팅 회사인 Kinsta는 PHP7을 사용하여 모든 클라이언트 웹사이트를 호스팅합니다. 이는 전반적으로 높은 성능과 속도를 보장하기 위한 것입니다. Kinsta는 또한 사용자에게 PHP 엔진을 최신 PHP 버전으로 업데이트할 수 있는 기능을 제공합니다.
물론 WP Buffs의 완전 관리형 WordPress 호스팅도 고려해야 합니다. WP Buffs는 서버와 PHP 버전을 최신 및 최고 버전으로 유지하여 항상 앞서 나가므로 이러한 업그레이드를 직접 관리하는 것에 대해 걱정할 필요가 없습니다. 이는 WordPress 관리 아웃소싱의 즐거움 중 하나입니다. 다른 사람한테 하는 거 맞지?)
마무리
WordPress 웹사이트를 구축할 때 보안은 항상 주요 관심사입니다. 이것이 바로 신뢰할 수 있는 플러그인과 테마를 사용하고 다른 보안 모범 사례 중에서도 핵심을 항상 최신 상태로 유지하는 이유입니다. PHP도 다르지 않습니다. 다른 WordPress 도구와 마찬가지로 처리하세요. 최신 상태로 유지하고 항상 보안 모범 사례를 준수하면 귀하(및 귀하의 웹 사이트)가 밤에 훨씬 더 편안하게 잠을 잘 수 있습니다.
피드백을 제공하고 싶거나 대화에 참여하고 싶으신가요?Twitter에 의견을 추가하세요.
저장 저장