esc_url() 및 워드프레스 보안?
이스케이프 기능을 사용할 때 누가 설명해 줄 수 있습니까?
제 목표는 워드프레스 테마를 확보하는 것입니다.크리스 코이에의 빈 테마를 사용하고 코드를 추가하여 원하는 웹사이트를 만들었습니다.다른 테마는 이스케이프 기능을 사용했지만 코이에의 빈 테마는 사용하지 않은 것을 알아챘기 때문에 어디에 삽입해야 하는지 알고 싶습니다.
Codex와 Google 결과를 읽고 몇 가지 주제의 코드를 조사한 결과, 언제 사용해야 할지 아직 확실하지 않습니다.
esc_url()
esc_attr()
esc_html()
나는 이것들을 언제 사용해야 하는지 패턴이 보이지 않습니다.예를 들어, 한 테마에서 home_url(/')에 대해 esc_url이 헤더에서 사용됩니다.php 하지만 searchform.php에는 없습니다 -- 왜죠?
header.sys
<a href=
// NOTICE ESCAPING FUNCTION BELOW
"<?php echo esc_url( home_url( '/' ) ); ?>"
title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
검색 양식php
<form role="search" method="get" id="searchform" action=
// NO ESCAPING FUNCTION BELOW
"<?php echo home_url( '/' ); ?>"
>
탈출 기능은 공격과 이상한 캐릭터로부터 보호하는 역할을 합니다.기능 중 일부는 잘못된 문자를 제거하고 위험한 문자를 제거하며 문자를 HTML 엔티티로 인코딩합니다.
문제는 신뢰할 수 없는 데이터가 사용자뿐만 아니라 자신의 데이터베이스에 저장된 항목에서 나올 수 있다는 점입니다.
일반적으로 워드프레스 기능에 의해 URL의 일부가 생성되지 않을 때 이스케이프 기능을 사용하는 것이 좋습니다.전체 URL이 Wordpress 기능으로만 생성되는 경우 이스케이프 기능이 필요하지 않습니다.
예를 들어 URL을 인쇄하고 다음과 같은 쿼리 문자열을 추가하려는 경우
<?php echo get_permalink() . '?order=time' ?>
당신은 실제 URL의 일부를 입력했기 때문에 탈출 기능을 사용하는 습관이 있어야 합니다.
<?php echo esc_url(get_permalink() . '?order=time') ?>
그래도 add_query_string 함수는 다음과 같이 사용하는 것이 좋습니다.
<?php echo add_query_arg('order', 'time', get_permalink()) ?>
이 두 번째 예에서는 URL이 전적으로 Wordpress 함수에 의해 생성되므로 이스케이프 함수가 필요하지 않습니다.
질문의 예에서 이스케이프 함수는 헤더에 필요하지 않습니다.php 파일.그 코드를 작성한 사람은 아마도 그것을 하는 습관이 있었을 것이고 그것이 필요하지 않을 때도 그것을 거기에 두는 것은 괜찮습니다.
데이터 유효성 확인에 대해 읽기 시작하기에 좋은 장소는 Wordpress 코덱스: https://codex.wordpress.org/Data_Validation 입니다.
워드프레스 기능에 필요하지 않고, 사용자가 삽입한 콘텐츠에 워드프레스 이스케이프 기능을 사용해야 합니다.하지만 플러그인, 템플릿, 양식 등에서는 탈출 기능을 사용해야 합니다.
John이 말하는 것처럼 모든 사용자가 내용을 삽입할 때는 단어 프레스 이스케이프 기능을 사용해야 합니다.
워드프레스 이스케이프 기능에 대해 알기 위해 제가 제공한 링크를 보세요.
http://codeseekah.com/2012/03/13/wordpress-escape-functions/
언급URL : https://stackoverflow.com/questions/24916389/esc-url-and-wordpress-security
'programing' 카테고리의 다른 글
트랜잭션에서 삽입된 행 수를 가져오는 방법 (0) | 2023.06.30 |
---|---|
Python을 사용하여 Windows 인증으로 MS SQL Server에 연결하시겠습니까? (0) | 2023.06.30 |
상태를 참조하지 않는 제네릭 돌연변이에서도 vuex가 제대로 작동할까요? (0) | 2023.06.30 |
페이지. 사용자.신원.양식 이후에도 인증이 계속 참인증.로그아웃() (0) | 2023.06.30 |
프로세스 내 쓰기 메모리에 복사본 할당 (0) | 2023.06.30 |