SQL 주입을 방지하는 방법? (전체 가이드 2020) - MalCare
게시 됨: 2023-04-19웹 사이트에 대한 SQL 삽입 공격이 걱정되십니까? 이 글을 읽고 있다면 공격의 결과를 이미 알고 있을 것입니다. 이 게시물에서는 SQL 인젝션을 방지하는 쉬운 방법을 배웁니다 .
SQL 삽입을 통해 해커가 WordPress 사이트를 하이재킹하고 액세스 제어할 수 있습니다. 여기에서 그들은 트래픽을 리디렉션하고, 기밀 데이터를 훔치고, 스팸 링크를 삽입하고, 일본어 문자로 검색 결과를 조작하고, 불법 제품에 대한 광고를 표시할 수 있습니다. 이러한 종류의 공격은 사이트와 비즈니스에 돌이킬 수 없는 피해를 줄 수 있습니다.
다행히 올바른 보안 조치를 취하면 SQL 주입을 예방할 수 있습니다. 이 가이드에서는 SQL 주입을 다루고 이를 예방하고 WordPress 웹사이트를 보호하기 위한 효과적인 조치에 대해 심도 있게 논의합니다.
요약: 안정적인 보안 플러그인을 사용하여 WordPress 사이트에서 SQL 삽입을 방지할 수 있습니다. MalCare를 설치하면 플러그인이 이러한 공격으로부터 사이트를 자동으로 스캔하고 방어합니다.
[lwptoc skipHeadingLevel=”h1,h3,h4,h5,h6″ skipHeadingText=”마지막 생각”]
SQL 삽입 공격이란?
모든 WordPress 사이트에는 일반적으로 방문자가 정보를 입력할 수 있는 입력 영역이 있습니다. 이것은 사이트 검색창, 연락처 양식 또는 로그인 양식 일 수 있습니다.
연락처 양식에서 방문자는 이름, 전화 번호 및 이메일과 같은 데이터를 입력하고 사이트에 제출합니다.
이 데이터는 웹사이트의 MySQL 데이터베이스로 전송됩니다. 여기에서 처리되고 저장됩니다.
이제 이러한 입력 필드에는 데이터가 데이터베이스에 입력되기 전에 확인되고 삭제되도록 적절한 구성이 필요합니다. 예를 들어 연락처 양식 취약점은 문자와 숫자만 허용해야 한다는 것입니다. 이상적으로는 기호를 허용하지 않아야 합니다. 이제 사이트에서 이 형식을 통해 데이터를 허용하는 경우 해커는 다음과 같은 악의적인 SQL 쿼리를 사용하여 삽입할 수 있습니다.
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
해커는 취약한 보안 조치가 있거나 쉽게 침입할 수 있는 취약성이 있는 웹사이트를 대상으로 합니다. 우리의 경험에 따르면 플러그인과 테마는 종종 취약성을 개발하고 해커는 이를 잘 알고 있습니다. 그들은 취약한 플러그인과 테마를 사용하는 사이트를 찾기 위해 끊임없이 인터넷을 배회합니다.
이를 설명하기 위해 예제 시나리오를 사용합니다. A씨가 웹사이트의 연락처 페이지에 있는 양식을 강화하기 위해 '문의 양식' 플러그인을 사용하고 있다고 가정해 보겠습니다. 버전 2.4의 이 플러그인에서 SQL 주입 취약점이 발견되었고 개발자가 이를 수정하고 업데이트된 버전 2.4.1을 출시했다고 가정해 보겠습니다.
릴리스 시 개발자는 보안 결함을 대중에게 알리는 업데이트 이유를 밝힙니다. 이는 해커가 Contact Form 플러그인 버전 2.4에 보안 결함이 있음을 알고 있음을 의미합니다.
이제 Mr.X는 업데이트를 실행할 시간이 없기 때문에 몇 주 동안 업데이트 설치를 연기합니다. 이것은 일이 잘못되는 곳입니다.
해커가 취약점을 발견하면 프로그램을 실행하거나 인터넷을 통해 크롤링하고 특정 버전의 플러그인/테마를 사용하는 웹 사이트를 찾는 취약점 스캐너를 사용합니다.
이 경우 Contact Form 2.4를 사용하여 웹사이트를 찾습니다. 사이트를 찾으면 해킹하기 훨씬 쉬운 정확한 웹 취약점을 알게 됩니다. 이 경우 그들은 SQL 인젝션 결함을 악용하여 사이트에 침입합니다.
SQL 삽입 유형
해커는 두 가지 유형의 SQL 주입을 사용합니다.
1. 클래식 SQL 주입 – 웹사이트를 방문하면 브라우저(예: Chrome 또는 Mozilla)가 콘텐츠를 표시하기 위해 웹사이트의 서버에 HTTP 요청을 보냅니다. 웹 서버는 사이트의 데이터베이스에서 콘텐츠를 가져와 브라우저로 다시 보냅니다. 이것이 웹 사이트의 프런트 엔드를 볼 수 있는 방법입니다.
이제 웹사이트의 데이터베이스에는 고객 세부 정보, 결제 정보, 사용자 이름 및 비밀번호와 같은 기밀 데이터를 포함한 모든 종류의 데이터가 포함되어 있습니다. 프런트 엔드 데이터만 릴리스하도록 데이터베이스를 구성해야 합니다. 기타 모든 기밀 데이터는 보호되어야 합니다. 그러나 이러한 애플리케이션 보안 검사가 제대로 이루어지지 않으면 해커가 이를 악용합니다.
Classic SQL 주입 공격에서 해커는 데이터를 검색하는 데이터베이스에 악의적인 요청을 브라우저로 보냅니다. 그러나 그들은 쿼리 문자열을 사용하여 웹사이트의 로그인 자격 증명과 같은 민감한 정보를 요청합니다. 이 정보를 보호하지 않은 경우 해커에게 전송됩니다. 이런 식으로 그들은 귀하의 로그인 세부 정보를 손에 넣고 귀하의 사이트에 침입할 수 있습니다. 공격자는 동일하거나 유사한 데이터베이스 명령문을 반복적으로 높은 효율성으로 실행하는 방법으로 준비된 명령문을 사용할 수도 있습니다.
2. 블라인드 SQL 인젝션 – 여기서 해커는 웹사이트의 입력 필드를 통해 악성 스크립트를 인젝션합니다. 데이터베이스에 저장되면 사이트 콘텐츠를 변경하거나 전체 데이터베이스를 삭제하는 것과 같은 모든 종류의 피해를 입히기 위해 실행합니다. 이 경우 악성 스크립트를 사용하여 관리자 권한을 얻을 수도 있습니다.
두 시나리오 모두 웹 사이트와 비즈니스에 치명적인 영향을 미칠 수 있습니다. 다행히 웹 사이트에서 올바른 보안 및 입력 유효성 검사 조치를 취하여 이러한 공격을 방지할 수 있습니다.
SQL 주입 공격을 방지하기 위한 단계
SQL 주입 공격을 방지하려면 웹 사이트의 보안 평가를 수행해야 합니다. 다음은 SQL 공격을 방지하기 위해 취할 수 있는 두 가지 유형의 조치입니다. 일부는 쉬운 조치이고 일부는 복잡하고 기술적인 조치입니다.
쉬운 예방 조치
- 보안 플러그인 설치
- 신뢰할 수 있는 테마 및 플러그인만 사용
- 사이트에서 불법 복제 소프트웨어 삭제
- 비활성 테마 및 플러그인 삭제
- 정기적으로 웹사이트 업데이트
기술적 예방 조치
- 기본 데이터베이스 이름 변경
- 제어 필드 항목 및 데이터 제출
- WordPress 웹 사이트 강화
시작하자.
SQL 주입 공격에 대한 손쉬운 예방 조치
1. 보안 플러그인 설치
웹사이트 보안 플러그인 활성화는 웹사이트를 보호하기 위해 취해야 할 첫 번째 단계입니다. WordPress 보안 플러그인은 사이트를 모니터링하고 해커가 침입하는 것을 방지합니다.
선택할 수 있는 플러그인이 많이 있지만 제공해야 하는 항목에 따라 MalCare를 선택합니다. 플러그인은 웹 애플리케이션 방화벽을 자동으로 설정하여 공격으로부터 사이트를 보호합니다. 해킹 시도가 식별되고 차단됩니다.
다음으로 플러그인의 보안 스캐너가 매일 사이트를 철저히 스캔합니다. 사이트에 의심스러운 행동이나 악의적인 활동이 있으면 즉시 알림을 받습니다. Google이 귀하의 사이트를 블랙리스트에 추가하거나 호스팅 제공업체가 귀하의 사이트를 정지하기 전에 조치를 취하고 MalCare를 통해 사이트를 즉시 수정할 수 있습니다.
2. 정기적으로 웹사이트 업데이트
앞서 SQL 삽입 예제에서 언급했듯이 개발자가 소프트웨어에서 보안 결함을 발견하면 이를 수정하고 보안 패치가 포함된 새 버전을 출시합니다. 사이트에서 결함을 제거하려면 새 버전으로 업데이트해야 합니다.
일주일에 한 번 시간을 할애하여 WordPress 코어 설치, 테마 및 플러그인을 업데이트하는 것이 좋습니다.
그러나 보안 업데이트가 릴리스된 경우 업데이트를 즉시 설치하십시오.
3. 신뢰할 수 있는 테마와 플러그인만 사용
WordPress는 웹사이트를 구축하는 가장 인기 있는 플랫폼이며 이는 부분적으로 쉽고 저렴하게 만드는 플러그인과 테마 때문입니다. 그러나 사용 가능한 수많은 테마와 플러그인 중에서 신중하게 선택해야 합니다. 활성 설치 수, 마지막 업데이트 날짜 및 테스트 버전과 같은 플러그인 세부 정보를 확인하십시오.
WordPress 저장소에서 다운로드하는 것이 좋습니다. 다른 테마 및 플러그인의 경우 신뢰할 수 있는지 확인하기 위해 적절한 조사를 수행해야 합니다. 이는 일부 타사 테마 및 플러그인이 해커에 의해 악의적으로 제작될 수 있기 때문입니다. 또한 잘못 코딩되어 취약성에 노출될 수도 있습니다.
4. 사이트에서 불법 복제 소프트웨어 삭제
불법 복제되거나 무효화된 테마와 플러그인이 매력적입니다. 프리미엄 기능을 무료로 이용할 수 있습니다. 그러나 불행하게도 이들은 일반적으로 사전 로드된 맬웨어와 함께 제공됩니다. 불법 복제 소프트웨어는 해커가 맬웨어를 배포할 수 있는 손쉬운 방법입니다.
설치하면 맬웨어가 활성화되어 사이트를 감염시킵니다. 그러한 소프트웨어를 멀리하는 것이 가장 좋습니다.
5. 비활성 테마 및 플러그인 삭제
플러그인을 설치하고 몇 년 동안 완전히 잊어버리는 것이 일반적입니다. 그러나이 습관은 사이트를 해커에게 노출시킬 수 있습니다. 사이트에 설치한 플러그인과 테마가 많을수록 취약성이 나타나고 해커가 이를 악용할 가능성이 높아집니다.
사용하는 플러그인과 테마만 유지하는 것이 좋습니다. 나머지는 삭제하고 사이트를 더 안전하게 만드십시오. 또한 기존 테마와 플러그인을 정기적으로 검사하십시오.
기술적 예방 조치
이러한 조치에는 WordPress의 내부 작동에 대해 조금 더 많은 지식이 필요할 수 있습니다. 그러나 요즘에는 모든 것을 위한 플러그인이 있습니다. 따라서 이러한 조치를 구현하는 것과 관련된 복잡성에 대해 걱정할 필요가 없습니다. 우리는 그것을 간단하게 만듭니다!
1. 기본 데이터베이스 테이블 이름 변경
WordPress 사이트는 파일과 데이터베이스로 구성되어 있습니다. 데이터베이스에는 기본적으로 11개의 테이블이 있습니다. 각 테이블에는 다양한 데이터와 구성이 있습니다. 이 테이블의 이름은 접두사 'wp_'로 지정됩니다. 따라서 테이블의 이름은 wp_options, wp_users, wp_meta가 될 수 있습니다. 당신은 드리프트를 얻습니다.
이 이름은 모든 WordPress 사이트에서 동일하며 해커는 이를 알고 있습니다. 해커는 어떤 테이블이 어떤 종류의 데이터를 저장하는지 알고 있습니다. 해커가 웹 사이트에 악성 스크립트를 삽입하면 스크립트가 저장되는 위치를 알 수 있습니다. 간단한 방법을 사용하여 SQL 명령을 실행하여 악의적인 활동을 실행할 수 있습니다.
그러나 테이블의 이름을 변경하면 해커가 스크립트가 있는 위치를 찾는 것을 막을 수 있습니다. 따라서 해킹이 데이터베이스 테이블에 SQL 코드를 삽입하려고 하면 테이블 이름을 알아낼 수 없습니다.
Change Table Prefix 또는 Brozzme와 같은 플러그인을 사용하여 이 작업을 수행할 수 있습니다. 그 중 하나를 사이트에 설치하고 단계를 따르기만 하면 됩니다.
wp-config 파일을 편집하여 수동으로 이 작업을 수행할 수도 있습니다. 주의 사항 – 여기에서 약간의 실수는 데이터베이스 오류 및 사이트 오작동으로 이어질 수 있습니다. 계속하기 전에 백업을 수행하십시오.
- 호스팅 계정 > cPanel > 파일 관리자로 이동합니다.
- 여기에서 public_html 폴더에 액세스하고 wp-config 파일을 마우스 오른쪽 버튼으로 클릭합니다.
- 편집을 선택하고 다음 코드를 찾습니다.
"$table_prefix = 'wp_';" - 다음으로 교체 –
"$table_prefix = '테스트_';"
원하는 접두사를 선택할 수 있습니다. 여기서는 새 데이터베이스 이름으로 'test_'를 선택했습니다. 완료되면 해커는 SQL 명령을 찾을 수 없습니다.
2. 제어 필드 항목 및 데이터 제출
특정 유형의 데이터만 허용하도록 웹 사이트의 모든 입력 필드를 구성할 수 있습니다. 예를 들어 이름 필드는 여기에 숫자를 입력해야 할 이유가 없기 때문에 알파벳 항목(문자)만 허용해야 합니다. 마찬가지로 연락처 필드에는 숫자만 입력해야 합니다.
사용자 입력을 삭제하는 sanitize_text_field() 함수를 사용할 수 있습니다. 이 입력 유효성 검사는 올바르지 않거나 단순히 위험한 항목이 차단될 수 있는지 확인합니다.
3. 워드프레스 웹사이트 강화
이는 SQL 주입 공격으로부터 WordPress 사이트를 보호하기 위해 취할 수 있는 가장 중요한 단계 중 하나입니다. 웹사이트 강화란 무엇입니까?
워드프레스 웹사이트는 사이트 운영에 도움이 되는 많은 기능을 제공합니다. 그러나 대부분의 사람들은 이러한 기능을 많이 사용하지 않습니다. WordPress.org는 사용하지 않는 경우 일부를 비활성화하거나 제거할 것을 권장합니다. 이렇게 하면 해커가 시도할 수 있는 요소가 적기 때문에 공격 가능성이 줄어듭니다!
일부 WordPress 강화 조치는 다음과 같습니다.
- 파일 편집기 비활성화
- 플러그인 또는 테마 설치 비활성화
- 2단계 인증 구현
- 로그인 시도 제한
- WordPress 보안 키 및 솔트 변경
- 알 수 없는 폴더에서 PHP 실행 차단
이러한 조치를 구현하기 위해 MalCare와 같은 플러그인을 사용하면 몇 번의 클릭만으로 이를 수행할 수 있습니다.
또는 WordPress Hardening 가이드에 따라 수동으로 구현할 수 있습니다.
이것으로 SQL 인젝션 공격을 방지할 수 있습니다. 이 SQL 삽입 치트 시트에서 논의한 조치를 구현했다면 사이트는 안전할 것입니다.
[ss_click_to_tweet tweet="SQL 주입 공격을 막을 수 있습니다! 이 가이드를 사용하여 WordPress 사이트에 올바른 보안 조치를 구현하십시오.” 내용 =”” 스타일 =”기본값”]
마지막 생각들
정말 예방이 치료보다 낫습니다. SQL 주입 공격은 불필요한 스트레스와 심각한 재정적 부담을 유발할 수 있습니다.
오늘 논의한 대부분의 조치는 플러그인을 사용하여 쉽게 구현할 수 있습니다. 따라서 기술에 정통하지 않더라도 걱정할 필요가 없습니다! 당신은 여전히 자신을 보호할 수 있습니다!
이러한 조치를 구현하는 것과 함께 귀하의 사이트에서 MalCare를 활성화하는 것이 좋습니다. 방화벽은 공격으로부터 웹 사이트를 적극적으로 방어합니다. 매일 사이트를 스캔하여 사이트에서 해킹 시도 및 맬웨어를 확인합니다.
사이트를 모니터링하고 악당을 차단하는 웹사이트 보안 가드라고 생각할 수 있습니다. 사이트가 보호되고 있다는 사실을 알고 안심할 수 있습니다.
MalCare 보안 플러그인 으로 해킹 공격을 방지하세요 !