정확하게 차이점을 알지 못합니다. 나는이위생 처리와 strip_tags 레일의 차이점
http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html
읽을 수 있지만 정확한 차이를하지 않습니다. 아무도 저에게 차이점을 알려주시겠습니까?
정확하게 차이점을 알지 못합니다. 나는이위생 처리와 strip_tags 레일의 차이점
http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html
읽을 수 있지만 정확한 차이를하지 않습니다. 아무도 저에게 차이점을 알려주시겠습니까?
위생 처리를 사용하면 일부 HTML 태그 또는 클래스를 허용 할 수 있지만 strip_tags는 허용 할 수 없습니다. 그것은 똑같은 일을합니다. 코드 확인 https://github.com/rails/rails/blob/76a0b1028e312b6c3c00a50b4a09d68c23b5e713/actionview/lib/action_view/helpers/sanitize_helper.rb#L80
sanitize
은 흰색 목록 삭제기를 사용합니다. strip_tags
은 모든 태그를 제거합니다.
비교 : 어떤 허용 된 태그를 제공하지 않으면
[64] pry(main)> sanitize "hello <h1>h1</h1> <b>b</b>"
=> "hello <h1>h1</h1> <b>b</b>"
[65] pry(main)> strip_tags "hello <h1>h1</h1> <b>b</b>"
=> "hello h1 b"
이 sanitize
기본적으로 다음과 같은 태그를 할 수 있습니다.
[66] pry(main)> ActionView::Base.white_list_sanitizer.allowed_tags.to_a * ', '
=> "strong, em, b, i, p, code, pre, tt, samp, kbd, var, sub, sup,
dfn, cite, big, small, address, hr, br, div, span, h1, h2, h3,
h4, h5, h6, ul, ol, li, dl, dt, dd, abbr, acronym, a, img,
blockquote, del, ins"
허용 된 자체 허용 태그를 제공하면 기본 허용 태그보다 우선 적용됩니다. sanitize
와 strip_tags
사이
[67] pry(main)> sanitize "hello <h1>h1</h1> <b>b</b>", tags: %w(b)
=> "hello h1 <b>b</b>"
또 다른 차이는 sanitize
일부 태그, 특히 <script>
태그의 내용 (사이에 물건을) 제거한다는 것입니다.
비교 :
는[68] pry(main)> sanitize "a<script>alet('foo')</script>"
=> "a"
[69] pry(main)> strip_tags "a<script>alet('foo')</script>"
=> "aalet('foo')"
또한, sanitize
어떤 문자를 HTML 탈출을 수행하지만 strip_tags
하지 않습니다.
[70] pry(main)> sanitize "< &"
=> "< &"
[71] pry(main)> strip_tags "< &"
=> "< &"
또한 중첩 된 태그를 다르게 처리합니다. 다음을 비교하십시오 :
[73] pry(main)> sanitize "some<<b>script>alert('hello')<</b>/script>", tags: []
=> "some<script>alert('hello')</script>"
[74] pry(main)> strip_tags "some<<b>script>alert('hello')<</b>/script>"
=> "somealert('hello')"
즉, strip_tags가 모든 것을 제거한다는 의미입니까? 그리고 제한하는 조항이있는'sanitize '에서. –
예 http://api.rubyonrails.org/에 대한 자세한 정보가 있습니다. –