Intereting Posts

Защитить мой перевод "add_settings_field"?

Я использую «add_settings_field» и хочу предоставить перевод для него, но моя проблема – безопасность.
Так __('My Checbox:' , 'domain') достаточно безопасен для перевода?

Если нет, что я могу с этим поделать?

Я попытался использовать esc_html_e( 'My Checbox:' , 'domain' )
и esc_html_( 'My Checbox:' , 'domain' ) но он разбивает мою страницу …

 add_settings_field( 'add_checkbox', __('My Checbox:' , 'domain'),<!--Is this secure when translating?--> 'my_checkbox_function', 'theme_options', 'theme_options' ); 

Solutions Collecting From Web of "Защитить мой перевод "add_settings_field"?"

Нет. esc_html__( 'string', 'text_domain' ) используйте esc_html__( 'string', 'text_domain' ) ( два esc_html__( 'string', 'text_domain' ) подчеркивания).

Переведенные строки – это неизвестный ввод. Неизвестный ввод по умолчанию вредоносный.

  • Вы не знаете, откуда берется языковой файл. Он даже не должен быть тем, который вы предоставили, потому что путь можно фильтровать или изменять с помощью символической ссылки.
  • Даже если это ваш файл: у вас есть контроль над всем процессом от создания до доставки? Вы не можете контролировать репортаж wordpress.org, например, то же самое верно для GitHub и других репозиториев в руках других людей.
  • Вы действительно посмотрели на строку; вы получаете «забавные персонажи»? Что выглядит смешно в вашем редакторе / браузере, может быть опасным выходом в зависимости от кодировки . Вы управляете кодировкой страницы? Возможно нет.
  • Вы можете обойти эту проблему, используя контрольную сумму, хэш исходного файла, который вы сравниваете, прежде чем загружать перевод. Но опять же, этот хэш должен быть где-то сохранен, и это место может быть доступно для записи.

Всегда делайте ваш выход максимально безопасным. Если вы не хотите, чтобы HTML в строке, не разрешайте его. Если вы получаете ошибки, анализируете сообщения об ошибках и исправляете эти ошибки, не теряйте безопасность.