Dmitriy_2014

Dmitriy_2014
Рейтинг
370
Регистрация
01.07.2014
Интересы
Веб-технологии
totamon #:

да причем тут html код?) они пишут про "переменные"... и выше обращали внимание.

Да я понял про переменные, а что в переменных нельзя хранить элементы html кода и выводить их. Я понимаю что это связанно с псевдобезопасностью, и нужно обрамить их всех в эти супер безопасные функции а-ля esc_html(), но при этом html код выводиться как код, а не работает как html код и это создает проблемку для не программиста сделать так чтобы часть была в этих esc_html’ах, а часть просто работала как html код. Моя программа работает идеально :), а вот это уже начинается мазгоделание. Но ни че порешаем.
livetv #:

искейпить нужно php переменные

html  по идее ж можно выводить без echo

Про искейпнуть переменные это я примерно понял (в смысле вывод из них где используется echo). Вывести без echo, это вы имеете ввиду, разорвав открывающие и закрывающие блоки <?php ?>, я просто никогда не думал, что это такая проблема выводить html код с помощью echo, я вам даже больше скажу не один учитель с ютуба, ни одна книжка, не рассказывает о таком тонком моменте, только пацаны с WordPress’а при проверке скромного плагина :).
webinfo #:

И никто не поймёт, не зная, какой код нужно вывести и как он формируется.

К сожалению, рано еще позориться, но я обязательно его опубликую, как вы понимаете его даже в репозиторий не принимают, настолько он плох, и я это знаю, я ведь не программист, да и удивительно там нет ничего такого одна кнопка, да и этих echo не так уж и много, тем более информация, выводимая ими, выводится только в админ панели для администратора, хз что там можно сделать это даже не касается так сказать фронтендной части сайта.

Кто-нибудь кто знает английский, скажите мне в двух словах что они от меня хотят.

Much related to sanitizing everything, all variables that are echoed need to be escaped when they're echoed, so it can't hijack users or (worse) admin screens. There are many esc_*() functions you can use to make sure you don't show people the wrong data, as well as some that will allow you to echo HTML safely.

At this time, we ask you escape all $-variables, options, and any sort of generated data when it is being echoed. That means you should not be escaping when you build a variable, but when you output it at the end. We call this 'escaping late.'

Besides protecting yourself from a possible XSS vulnerability, escaping late makes sure that you're keeping the future you safe. While today your code may be only outputted hardcoded content, that may not be true in the future. By taking the time to properly escape when you echo, you prevent a mistake in the future from becoming a critical security issue.

This remains true of options you've saved to the database. Even if you've properly sanitized when you saved, the tools for sanitizing and escaping aren't interchangeable. Sanitizing makes sure it's safe for processing and storing in the database. Escaping makes it safe to output.

Also keep in mind that sometimes a function is echoing when it should really be returning content instead. This is a common mistake when it comes to returning JSON encoded content. Very rarely is that actually something you should be echoing at all. Echoing is because it needs to be on the screen, read by a human. Returning (which is what you would do with an API) can be json encoded, though remember to sanitize when you save to that json object!

There are a number of options to secure all types of content (html, email, etc). Yes, even HTML needs to be properly escaped.


Remember: You must use the most appropriate functions for the context. There is pretty much an option for everything you could echo. Even echoing HTML safely.
Я так понял тупо зафигачить все свои echo в esc_html() не проканает, чтобы они от меня отстали, нужно некоторые кусочки обрамить :).
Дополнительный вопрос: Может кто знает, эти цифры в этих функциях add_menu_page, add_action имеют ли какие-то ограничение или можно ставить любые хоть тысячу, хоть миллион, миллиард или есть какие-то ограничения или это без разницы сколько хочешь столько ставь?

Вы мне, наверное, не поверите, но оказывается помимо этого числа в add_menu_page, влияет на то где будет пункт меню циферка в add_action:

add_action('admin_menu', 'moe_super_menu', 20);

Это типа некий приоритет выполнения функции:

$priority(число)

Приоритет выполнения функции. Если на этот же хук "прицеплены" еще функции, то приоритет будет решать последовательность их выполнения.
Меньше число - раньше выполняется, т.е. 10 будет выполняться раньше чем 20.

По умолчанию: 10

Короче я поставил побольше чтобы было попозже и магическим способом элемент меню сдвинулся в самый конец, не знаю, как это работает и почему, но вот так хотите верьте хотите нет.

Всем спасибо все поправил.

Забавно что в файле sudoers пользовательские привилегии что у root, что у членов группы sudo одинаковые:

# User privilege specification

root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command

%sudo   ALL=(ALL:ALL) ALL

Что как бы намекает на схожесть в уровне доступа и привилегий, но я могу ошибаться. Да и это все не важно, т.к. как я понял достаточно похитить пароль от моего “Простого пользователя принадлежащего sudo” и можно делать все что угодно, и никакое судо и никакое разделение привелегий и рут не нужен.

Отсюда вывод, :-), нужно ставить хороший и устойчевый пароль для обычного sudo пользователя.

А вообще меня удевляет безопасность unix’а, делать всем известного пользователя обладающего всеми правами на любы действия, это удивительное дело, даже WordPress не рекомендует использовать пользователя admin по умолчанию и придумать другое название, но видимо у Linux’а свой путь, наверное это чтобы было удобно брутфорсить ssh соединение на пробивку пароля для суперпользователя.
webinfo #:

Нет. Рут остаётся рутом, и никакой судоер не может им стать, в том числе не может поменять его пароль. Тем самым предотвращается полный захват системы. В этом и состоит смысл делегирования прав.

Тут не буду спорить, т.к. точно не знаю, но разве в Ubuntu не устанавливается пароль для root при помощи sudo от пользователя принадлежащего sudo, там вроде по дефолту нет пароля у рута? И по моему он прекрасно ставиться как раз через sudo и хоп и у вас рут Пользователь с паролем установленным от пользователя sudo. Но это не точно, но вроде было как то так.
webinfo #:

Нет, у рута свой пароль.

Я понимаю, что это разные пользователи, но получив доступ хакер по сути становиться рутом и это уже не важно, что у рута свой пароль/свои настройки — это можно все поменять через sudo, пользователем, который имеет привилегии sudo и был скомпрометирован или похищен его пароль. Как sudo защищает от выполнения команд суперпользователя, когда я соединяюсь с сервером через ssh я через sudo могу выполнять любые действия что и root, обновлять, удалять, делать все что угодно, так и хакер, зная мой пароль и подключившись к серверу может делать все что угодно как и root, так как это защищает и от чего это может защитить?

Что-то мне подсказывает что ответ никак, но я могу ошибаться. Похоже на то что это только для того, чтобы я случайно не стер что-нибудь или не запустил от рут что-нибудь, на этом вся защита заканчивается похоже.
webinfo #:

В том, что root остаётся со своим паролем и правами.

Так, а какая разница если хакер получивший пароль и доступ от моего пользователя, входящего в sudo, может делать абсолютно все тоже самое что и тот же root? Удалять любые файлы, изменять любые настройки и т.п. как бы получается – пользователь sudo = root!
Всего: 2005