wp_insert_posts ()는 얼마나 안전하고 위생적입니까?


13

대한 코덱스 보면 ) wp_insert_post ( 이이 기능을 "... 소독하라고 변수, 날짜 / 시간, 등과 같은 변수를 누락 일부 검사, 칠을한다"고 주장한다 (편집 : 나는 분과 항목 업데이트 보다 강력한 예을 포함을 메타 및 카테고리 할당뿐만 아니라 보안이 포함됨)

XSS 해킹 등을 방지하기 위해 추가 위생 처리가 필요한지 또는 기능을 통해 충분히 수행되고 있는지 궁금합니다.

솔직히 말해서, 나는 핵심 기능을 점검했으며 post_content에서 wp_kses () 또는 다른 위생 처리를 찾지 못했습니다. 그래서 약간 걱정이됩니다. 내가 볼 수있는 것은 데이터에서 stripslashes_deep ()입니다.

wp_insert_post ()에 인수를 만들 때 wp_kses () 또는 다른 것을 실행해야합니까?

가장 좋은 방법은 무엇입니까? Codex는 예제에서 보안에 대해 매우 무심합니다.

감사


2
SQL 삽입 만 방지합니다. 컨텐츠에서 kses를 실행하려면 직접 수행해야합니다. WP는 제거 할 HTML을 추측 할 수 없습니다. 관리자가 게시물을 제출 한 후 게시물을 삽입하려면 <script>어떻게해야합니까?
onetrickpony

알았어요 wp_kses_post () 그리고 모든 것에 wp_kses_title () 제목에!
Tom Auger

데이터 유효성 검사 및 wp_insert_posts ()의 예를 표시하도록 Codex를 업데이트했습니다.
Tom Auger

답변:


11

당신은 아무것도 할 필요가 없습니다.

WP로드시 :

'init' hook -> kses_init() -> kses_init_filters()

나중:

wp_insert_post() -> sanitize_post() -> sanitize_post_field() -> 'content_save_pre' -> wp_filter_post_kses()

게시물 제목, 댓글 텍스트 등도 유사합니다.

결론 : wp_insert_post ()는 매우 위생적입니다. :)


그 수정에 대한 Scribu에게 감사드립니다-확실히 더 좋은 방법입니다! 전체 코드 스 니펫을 폐기하지는 않았지만 주요 예제에서 다루지 않는 wp_insert_post () 사용의 다른 측면을 잘 보여 주었기 때문입니다.
Tom Auger

그래, 나도 그런 기분이 들었어 그러나 wp_insert_post ()의 범위를 벗어났습니다. 별도의 위에서 아래 튜토리얼이 더 좋을 것 같습니다.
scribu

답변과 코덱도 업데이트되었습니다.
scribu

롤 @ 최신 편집. 때로는 코어 내부에 이미 묻혀있는 모든 금을 찾기 위해 약간의 파고가 필요합니다. 당신이 나보다 더 좋은 사람처럼 보입니다! 이 문제를 고수하고 코덱을 업데이트 해 주셔서 감사합니다.
Tom Auger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.