2012-07-21 2 views
3

MySQL을 사용하여 PHP로 호스팅 된 회사의 웹 사이트에서 작업하고 있습니다.웹 보안 : 시작하기

저는 SQL 주입과 XXS에 익숙하며, 이런 일이 발생하지 않도록 코드 작성 방법을 알고 있습니다. 그러나 나는 아직도 웹 사이트에서 취약점을 테스트 할 계획이다.

이제는 웹 개발에 익숙하지 않고 웹 사이트 보안에 대해 많은 것을 알고 있습니다. 는 일반적으로이 웹 사이트와 PHP와 MySQL을 사용하는 웹 서버에 사용되는 거기 다른 어떤 공격

  1. ?
  2. 어떻게 이러한 공격으로부터 보호합니까?
  3. 내 코드가 완벽하더라도 호스팅 회사의 웹에서 무엇을 찾아야합니까? 웹 서버를 취약하게 만들 수있는 서버 구성은 무엇입니까?
+1

여기는 대답이 너무 광범위합니다. 하지만 : [OWASP의 속임수 세트] (https://www.owasp.org/index.php/Cheat_Sheets)를 참조하십시오. 좋은 물건. –

+0

서버에서 사용자가 제공 한 데이터의 암호 해독을하는 경우 Padding oracle attacks. 타이밍 공격. HTTPS의 트래픽 분석 (페이지/이미지/스크립트 크기 및로드 시간 누적) –

+0

나는 몇 가지 질문 중 하나를 upvote과 가까운 투표. –

답변

2

염두에 두어야 할 좋은 것들 : 데이터베이스 목적 PDO

봐, 대신 mysql 또는 mysqli. (PDO는 여러 종류의 데이터베이스 간 차이점을 단순화하는 래퍼이지만 보안을 대폭 간소화합니다). 당신은 항상 (물론 PDO와 바보-쉽게) 문을 준비하고 있습니다로

PDO의 준비가 문을 만큼, SQL 주입 증거들을 꽤 많이 만들, 건축 쿼리가 쉽게 100 배 수 있도록 모두 .

다른 두 개의 mysql 옵션 중 하나를 사용하여 PDO를 사용하는 방법을 배우는 것이 중요합니다.

그렇다고해도 데이터베이스를 손상시키지 않아도되지만 나중에 데이터베이스에 저장하여 사용자에게 제공하는 데이터로부터 보호 할 수는 없습니다. 그 점에서

:

  1. 당신이 사용자로부터 얻을 모든 검증 - GET하는 폼 입력에서 모든/POST는
  2. 결코 HTML로 사용자의 페이지에 기록 모두를 탈출
  3. 값 -이 같은 클래스를 선택하기 위해, 사용자의 입력을 받아, 등등 (예 : include $_GET["page"];)

자바 스크립트 - 내 아기 :

  1. 클로저 및 모듈/네임 스페이스 패턴에 대해 자세히 알아보십시오.
  2. 당신이 작성한 모든 대용량 응용 프로그램 (특히 사용자 정보를 수집해야하는 모든 응용 프로그램)에 사용하십시오.
  3. 사용자가 사이트에서 원하는대로 실행할 수 없도록하는 것은 이해할 수 없습니다 dev 콘솔을 열고 뭔가를 붙여 넣는 것으로.# 3의 이해
  4. , 사용자가 당신에게주는 모든 데이터에 액세스 # 3를 실행하는 사용자를 방지하기 위해 # 1과 # 2를 사용하는 방법 (또는 당신이 사용자에 대한 유지하는 것이) 일반적으로

쿠키 및 URL 문자열에서 사용자 정보를 유지하고 최대한 JS- 클로저, POST 요청 및 사용자 세션의 가능한 한 서버 측에서 유지하십시오.

0

읽을만한 좋은 자료는 OWASP이며 웹 보안에 대한 정보가 가득한 방대한 위키 스타일 사이트입니다. 거기에는 많은 정보가 있기 때문에 꽤 무거울 수 있지만 북마크에 보관하는 것은 매우 좋은 자료입니다.

다른 유용한 사이트는 PHP The Right Way으로, PHP 코드를 더 안전하게 작성하고 모범 사례를 사용하는 데 도움을줍니다. 이 사이트는 아직 완전히 새롭지 만 이미 좋은 조언이 있습니다.

코드에 대한 조언 : 코드 보안을 위해 할 수있는 최선의 방법은 원시 PHP 코드를 작성하는 대신 괜찮은 PHP 프레임 워크를 사용하는 것입니다.

모든 좋은 프레임 워크에는 위험한 코딩 방법을 피하는 데 도움이되는 라이브러리가 있습니다. 예를 들어, 모든 데이터베이스 추상화 계층은 데이터베이스 작업을 단순화 할뿐만 아니라 훨씬 안전합니다. 사용중인 프레임 워크에 대한 지침을 따르면 최악의 위험으로부터 자신을 보호 할 수 있습니다. 물론 당신은 무엇을주의해야 할지를 알 필요가 있지만 그것은 많은 도움이 될 것입니다.

사용할 프레임 워크에 대한 제안은 Symphony 또는 CakePHP이지만 다른 많은 것들이 있습니다.

희망이 있습니다.