2012-09-27 5 views
0

저는 일반적으로 codeigniter 프레임 워크를 사용하여 작업합니다.이 프레임 워크는 SQL 주입을 방지하는 데 도움을줍니다. 폼 입력 데이터의 xss 정리.SQL 주입 외에 웹 사이트에서 다른 보안 취약점을 알고 있어야합니까?

나는 SQL 인 젝션의 기본 아이디어와 그것을 어떻게 멈추게 할까?하지만 내 친구는 유일한 기본 입력이 이메일 스크립트에 cgi 양식 인 아주 기본적인 사이트를 가지고있다. 성인용 콘텐츠로 대체되었습니다.

그래서 누군가가 어떻게 이러한 기본 사이트를 제어 할 수 있었는지 그리고 내 사이트를 만들 때 어떤 종류의 취약점을 알아야하는지 궁금합니다.

+1

http://programmers.stackexchange.com/questions/46716/what-should-every-programmer-know-about-web-development –

답변

7

시작하기 좋은 곳은 OWASP입니다.

특히 OWASP Top 10 details the most common security issues입니다. 당신이해야 원칙적으로

...

  • 절대로하지 신뢰 폼 입력, URL 입력, 쿠키를 포함하여 사용자 입력 (- 사용자가 방화범 또는 중간 남자 도구와 같은 검사 도구를 사용하여 포함 바꿀 수 아무것도 피 들러처럼). 이 카테고리에는 많은로드가 있지만 OWASP는 개별적으로 커버합니다. 다른 사람에 대한

  • 절대 신뢰 스크립트 (즉, 당신은 당신의 웹 사이트에서 자신의 자바 스크립트 파일 또는 웹 사이트에서의 PHP 파일 포함)

  • 결코은 로그인 또는 기타 민감한 데이터 - 수행을 일반 HTTP

+0

고마워요, 정확히 내가 찾고있는 것이기 때문에 ... 완벽합니다. – WebweaverD

+0

기꺼이 도와 드리겠습니다. – Fenton

1

당신은 www.enigmagroup.org/을 (를) 체크 아웃 할 수 있습니다. 다양한 공격과 취약점에 대해 학습하는데 매우 유용합니다.

+0

링크를 제공해 주셔서 감사합니다. 다른 쪽 ... 시간이있을 때 나는 확실히 그것을 확인해 보겠습니다. – WebweaverD

1

할 수있는 가장 좋은 방법을 통해 교환이 당신이 익숙하지 않은 경우 OWASP 톱 10에 읽어, 그것은 오픈 웹 애플리케이션 보안 프로젝트 그리고 그것은 웹 응용 프로그램에 최선을 다하고 커뮤니티입니다 보안.

악의있는 ​​사용자가 악용하는 가장 쉬운 방법은 SQL Injection과 XSS입니다. XSS 사용자에게 좋지 않지만 단일 SQL 주입 취약점으로 인해 전체 서버가 손상 될 수 있습니다. SQLI는 단순히 매개 변수화 된 쿼리를 사용하여 예방할 수 있으며 좋은 입력 유효성 검사 및 출력 인코딩을 사용하여 XSS를 방지 할 수 있습니다.

소프트웨어 엔지니어링 측면에서 사용자가 제공 한 입력 (숨겨진 필드 포함)은 절대로 핵심 기능을 수행해서는 안됩니다. 예를 들어 사이트에서 제품을 판매하면서 가격이 숨겨진 필드가있는 경우 누군가가 그 값을 매우 쉽게 수정할 수 있기 때문에 이것은 매우 나쁨입니다.

사용자 이름과 비밀번호를 수집하는 경우 해시되고 소금이 들어 있는지 확인하고 사용자 정보를 표시하거나 수집하는 모든 로그인 화면과 페이지에 SSL (https)이 있는지 확인하십시오. https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API을하고 PHP 탭을 클릭 - 당신은 OWASP ESAPI 보면, 입력 검증 및 인코딩을 수행하는 데 도움이 필요하면 https://www.owasp.org/index.php/Top_10_2010

:

OWASP 톱 10 문서

에서 찾을 수 있습니다.

SQL 삽입의 경우 프레임 워크를 올바르게 사용하는 한 codeigniter와 같은 프레임 워크가 사용자를 보호해야합니다. 고맙게도 SQLI는 프레임 워크 사용 증가로 인해 점점 더 문제가되고 있습니다.

1

코드 줄 수만큼 보안 문제가 있습니다. 몇 가지 예 :

  • SQL 주입에 원치 않는 행동을 실행 프론트 엔드 측
  • XSS는 (세션 하이재킹 페이지에 자바 스크립트 포함)
  • (원격 코드 require_once($_GET['x'] 포함) 백엔드 측
  • XSS 사용자를 대신하여 - "변경 비밀번호", "프로필 변경", "로그 아웃", "콘텐츠 추가"와 같은 모든 동작은 고유 토큰을 필요로합니다. 그렇지 않으면 누군가가 사용자를 액션으로 리디렉션 할 수 있습니다.
  • 당신은 모든 공용 디렉토리

당신은 항상 당신이 당신의 응용 프로그램에서 보안 문제를 쉽게 찾을 수 있도록 http://code.google.com/p/skipfish/ 같은 일부 스캐너를 사용할 수있는을 .svn 폴더를 보호 svn checkout에서 해제합니다.

관련 문제