Поиск…


Синтаксис

  • esc_html (строка $ text)
  • esc_url (строка $ url, массив $ protocol, строка $ _context)
  • esc_js (строка $ text)
  • wp_json_encode (смешанные $ data, int $ options, int $ depth = 512)
  • esc_attr (строка $ text)
  • esc_textarea (строка $ text)

замечания

Безопасность должна всегда иметь в виду при разработке. Без безопасности приложение открыто для различных атак, таких как SQL Injections, XSS, CSRF, RFI и т. Д., Что может привести к серьезным проблемам.

Неверные данные поступают из многих источников (пользователей, сторонних сайтов, вашей собственной базы данных !, ...), и все это необходимо проверять как на входе, так и на выходе. (Источник: WordPress Codex)

Данные должны быть проверены, дезинфицированы или экранированы в зависимости от использования и цели.

Для проверки необходимо убедиться, что данные, которые вы запросили у пользователя, соответствуют тому, что они отправили. (Источник: WordPress Codex)

Санитаризация является более либеральной из подхода к принятию пользовательских данных. Мы можем вернуться к использованию этих методов, когда есть диапазон допустимых входных данных. (Источник: WordPress Codex)

Чтобы убежать, нужно взять данные, которые у вас могут уже есть, и помочь защитить их до их предоставления конечному пользователю. (Источник: WordPress Codex)

escape-данные в HTML-коде

esc_html следует использовать в любое время, когда мы выводим данные внутри HTML-кода.

<h4><?php echo esc_html( $title ); ?></h4>

избежать URL-адреса

<a href="<?php echo esc_url( home_url( '/' ) ); ?>">Home</a>

<img src="<?php echo esc_url( $user_picture_url ); ?>" />

escape-данные в js-коде

esc_js() предназначен для использования внутри встроенного JS внутри атрибута тега.

Для данных внутри <script> используйте wp_json_encode() .

<input type="text" onfocus="if( this.value == '<?php echo esc_js( $fields['input_text'] ); ?>' ) { this.value = ''; }" name="name">

wp_json_encode() кодирует переменную в JSON с некоторыми проверками здравомыслия.

Обратите внимание, что wp_json_encode() автоматически включает в себя строковые разделительные кавычки.

<?php
$book = array(
    "title" => "JavaScript: The Definitive Guide",
    "author" => "Stack Overflow",
);
?>
<script type="text/javascript">
var book = <?php echo wp_json_encode($book) ?>;
/* var book = {
    "title": "Security in WordPress",
    "author" => "Stack Overflow",
}; */
</script>

или же

<script type="text/javascript">
    var title = <?php echo wp_json_encode( $title ); ?>;
    var content = <?php echo wp_json_encode( $content ); ?>;
    var comment_count = <?php echo wp_json_encode( $comment_count ); ?>;
</script>

escape-атрибуты

<input type="text" value="<?php echo esc_attr($_POST['username']); ?>" />

данные об утечке в textarea

<textarea><?php echo esc_textarea( $text ); ?></textarea>


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow