내가 레일 3.0.9에 루비를 사용하고 그리고 내가 월이 SHOULD 및 MUST이 보안 이유로 sanitize(...)
방법을 사용할 때 알고 싶습니다.뷰 파일에서 'sanitize'메서드를 언제 사용합니까?
사용 예제가 될 수 있습니다
sanitize(flash[:notice])
내가 레일 3.0.9에 루비를 사용하고 그리고 내가 월이 SHOULD 및 MUST이 보안 이유로 sanitize(...)
방법을 사용할 때 알고 싶습니다.뷰 파일에서 'sanitize'메서드를 언제 사용합니까?
사용 예제가 될 수 있습니다
sanitize(flash[:notice])
당신이 사용자가되어 입력으로, 즉이 신뢰할 수없는 데이터를 표시 할 때마다 당신은 그것을 사용해야합니다.
예를 들어 채팅 응용 프로그램에서 사용자는 게시물을 작성하여 페이지에 표시 할 수 있습니다. 이 경우 투입물을 살균하는 것이 중요합니다.
입력을 살균하지 않으면 사용자가 HTML 및 자바 스크립트 코드를 페이지에 삽입 할 수 있습니다.이 코드는 동일한 페이지를 보는 다른 모든 사용자에게 영향을줍니다. 이렇게하면 공격자가 페이지를 완벽하게 제어 할 수 있습니다.
반면에 애플리케이션에서 생성 한 데이터를 삭제할 필요는 없습니다. 즉, 예 (sanitize(flash[:notice])
)는 필요하지 않습니다. flash
을 사용하여 응용 프로그램에서 생성 된 상태 메시지를 표시한다고 가정하십시오.
@DR 사용자가 (아마도 악의적 인) 데이터를 입력 한 경우 sanitize 메서드를 사용하지 않으면 어떻게됩니까? – Backo
@Backo : ''이 발생할 수 있습니다. –
내 대답이 업데이트되었습니다. –