2008-10-01 10 views
1

XSS (Cross-Site Scripting) 및 SQL 주입 공격에 가장 취약한 입력 유형입니다.공격에 취약한 입력 유형은 무엇입니까?

PHP, HTML, BBCode 등. 친구를 돕는 포럼을 알아야합니다.

+0

정확히 무엇에 불릴 수 있습니까? 해킹? 교차 사이트 스크립팅? SQL 삽입? – wcm

+0

크로스 사이트 스크래핑 및 SQL 주입. 미안, 나는 질문에서 언급했다고 생각했다. (주의 산만 해졌고 내가 돌아 왔을 때 나는 내가 쓴 것을 확인하지 않고 제출했다.) – Iwasakabukiman

+0

실제 질문을 편집하고 그 내용을 입력하면 좋을 것입니다. "입력"이란 의미를 명확히 할 수 있습니까? 첫 번째 반응은 폼 컨트롤의 유형이 가장 취약하지 않은 것을 의미했습니다.이 경우 라디오 버튼을 말해야합니다! –

답변

3

귀하의 상황에 대해 더 알고 싶습니다. 취약한 방법? 어떤 것들은 당신은 항상 수행해야합니다

  • 탈출 문자열 알 수없는 소스에서 사용자에게 다시를 인쇄 할 때 SQL 주입
  • HTML 인코딩 문자열을 방지하기 위해 데이터베이스에 저장하기 전에, 악의적 인 HTML/자바 스크립트를 방지하기 위해

나는 결코 사용자가 제공 한 PHP를 실행하지 않을 것입니다. BBCode/UBBCode는 의미 론적으로 올바른 HTML로 변환되기 때문에 정상적으로 작동합니다. 잘못된 형식의 이미지 태그와 관련된 XSS 취약점을 조사하고 싶을 수 있습니다. HTML 입력을 허용하면 특정 요소를 허용 목록에 추가 할 수 있지만 이는 오류가 발생하기 쉬운 복잡한 접근 방식입니다. 그래서 위의 모든 내용을 고려할 때, 좋은 기성품 인 BBCode 라이브러리를 사용하는 것이 최선의 선택이라고 할 수 있습니다.

+1

SQL 인젝션을 방지하기 위해 문자열을 이스케이프 처리하지 마십시오. 자리 표시 자와 함께 준비된 문을 사용하십시오. –

+0

HTML + HTML 정수기는 좋은 선택입니다. – TRiG

1

HTML 코드 입력을 위생 처리하는 BB 코드 파서가 많이 있습니다. 패키지로 사용할 수있는 패키지가 없다면 오픈 소스 포럼 소프트웨어 패키지 중 하나를 살펴보십시오.

BB 코드는 포럼의 "표준"이므로 의미가 있습니다.

+0

BBCode 자체가 해결책이 아니라는 점은 중요합니다. XSS 및 SQL 삽입을 방지하는 파서입니다. 서식있는 텍스트 기능이 BBCode 태그로 처리된다는 사실은 전혀 관련이 없습니다. –

0

공격에 가장 취약한 입력은 "비 입력"입니다.

올바른 질문을하고 있습니까?

2

모든 종류의 부울입니다.

잘못된 입력을 매우 쉽게 필터링 할 수도 있습니다.

;-)

+0

if (input! = Bool.FileNotFound) // 안전합니다. http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx –

6

을 숙지하시기 바랍니다 (난 그냥 댓글이 게시하지만, 몇 사람이 아래에 보인다 선택 목록, 라디오 버튼 등이 새 니타 이징되지 않아도된다는 인상을줍니다.)

라디오 버튼이 안전하지 않습니다. 서버의 데이터를 여전히 위생해야합니다. 사람들은 자신의 로컬 컴퓨터에 html 페이지를 만들고 라디오 버튼과 동일한 이름의 텍스트 상자를 만들고 해당 데이터를 다시 게시하게 할 수 있습니다.

고급 사용자는 WebScarab과 같은 프록시를 사용할 수 있으며 매개 변수가 서버에 다시 게시 될 때 매개 변수를 조정할 수 있습니다.

일반적으로는 HTML로 퍼팅하기 전에 항상 사용하는 매개 변수가있는 SQL 문 및 항상 탈출 사용자가 생성 한 데이터이다.

+0

Opera에서는 페이지의 HTML 또는 JS를 편집하여 사용자가 무언가를하지 못하도록 사용자가 추가 한 내용을 변경할 수도 있습니다. 테스트 목적으로는 매우 멋지지만 사물을 쉽게 엉망으로 만듭니다. –

+0

그래, 파이어 폭스의 방화범이 끌려. – pkaeding

0

오딘의 경우 입력을 위생적으로 처리하지 마십시오. 사용자가 양식에 원하는 것을 입력하는 것을 두려워하지 마십시오.

사용자 입력이 본질적으로 안전하지 않습니다. 오라일리가 계좌를 개설 할 수없는 나의 은행과 같은 종류의 웹 인터페이스로 받아 들여지는 대답은 그가 그의 이름에 불법적 인 성격을 가지고 있기 때문에 발생합니다. 안전하지 않은 것은 항상 사용자 입력을 사용하는 방법입니다.

SQL 삽입을 방지하는 올바른 방법은 준비된 문을 사용하는 것입니다. 데이터베이스 추상화 계층에서 이들을 사용할 수 없으면 올바른 이스케이프 함수를 엄격하게 사용하십시오 (myslq_escape 외). XSS 공격을 막는 올바른 방법은 결코 striptags()와 같은 것이 아닙니다. PHP에서 htmlentities()와 같은 것은 사용자가 찾고자하는 것이지만 HTML 텍스트, HTML 속성 또는 자바 스크립트의 일부로 문자열을 출력하는지 여부에 달려 있습니다. 올바른 도구를 사용하십시오 올바른 맥락에서 그리고 결코 사용자 입력을 페이지에 직접 인쇄하지 마십시오.

마지막으로 웹 응용 프로그램의 주요 10 가지 취약점을 살펴보고이를 방지하기위한 올바른 방법을 찾아보십시오. http://www.applicure.com/blog/owasp-top-10-2010