«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/09/08 10:40:50  №1469875 1
image.png (353, 1440x900)
900x1440
Может кто-нибудь посоветовать, как быстрее всего вкатиться в безопасность? Где самые годные уроки/гайды?

Хотелось бы понимать, какие именно действия представляют угрозу для сайта и как уметь максимально от них этот сайт обезопасить. По крайней мере, на таком уровне, чтобы не было стыдно за свои работы на фрилансе (если я, конечно, когда-нибудь начну там получать бабос).

Сразу сорри за много букв. Немного конкретнее опишу свою проблему.

Занимался тут по одному видосу, где рассказывалось, как работать с базой данных, и сделал почти все, что нужно. Только автор видоса предлагал проблему безопасности сайта решить самому. Он обмолвился, что в моем случае можно полям с конкатенацией применить mysqli_real_escape_string. А также сказал что-то про XSS-атаку, от которой можно защититься посредством strip-tags. Я не понял, идет ли речь о том, что нужно выбрать что-то одно из этого, либо же надо несколько фильтров накладывать? Мне уже приходилось использовать strip-tags() для того, чтобы очистить текст от html-тэгов, и вроде как она фильтрует также PHP, но мне не очень ясно, как именно это помогает в безопасности.

Видов атак, я так понял, существует немалое количество. Как от всех них защищаться и в каких случаях нужно применять те или иные функции?

Верно ли я понимаю, что о безопасности впору думать всякий раз, когда на сайте есть какие-либо формы для ввода/работает GET или POST параметр? Но это вроде как касается только SQL-инъекций... Тут, казалось бы, достаточно сделать так, чтобы передаваемая от пользователя информация воспринималось только как текст или число, а не запрос в базу данных.

Собственно, в своем коде я применил mysqli_real_escape_string (как это рассказывается уже в другом ролике, но он на англ: https://www.youtube.com/watch?v=nTgFPcYRkys), а вот со strip-tags решил подождать. Потому что я не очень понимаю, нужен ли он. Нужно ли вообще прогонять информацию, получаемую через $_POST через несколько фильтров (для того, чтобы защититься от разных атак)? Подобные ухищрения кажутся немного нелепыми, но это первое, что пришло мне на ум, а именно создать еще 4 переменных и использовать очередную функцию (в данном случае strip-tags), прогоняя через нее уже имеющиеся переменные. Как паровозик через туннели, ё-мое. На комментарии в скрине внимание можно не обращать, я их оставляю для себя.

Я смотрел как-то еще один ролик, и там сразу про несколько функций рассказывалось, применяющихся для защиты. Помимо strip_tags() еще htmlspecialchars() и htmlentities().

Но из роликов и инфы в нете я получаю какую-то фрагментированную информацию. Знает ли кто-то адекватные источники на эту тему?

И еще вопросы по скрину: можно ли мой код написать каким-нибудь другим образом в данном случае? Ну, за исключением варианта с созданием отдельной переменной, которая содержала бы в себе запрос. (Видел, что некоторые так делают зачем-то, но мне это кажется просто лишним удлинением кода).

И что меня интересует больше всего, так это то, зачем в таких запросах нужна конкатенация с двух сторон, именно в таком виде? И еще кавычки внутри кавычек-апострофов. Это связано с безопасностью? В ролике автор как-то не очень объяснил этот момент. До того, как я применил strip-tags, в самом запросе mysqli_query на скрине там были не переменные, а POST-параметр.



Ответы: >>1470004 >>1472616
Аноним 2019/09/08 15:16:43  №1470004 2
>>1469875
Ты пойми сразу что никто ничего не пишет с нуля.
А готовые решения уже содержат средства для валидации данных и защиты инъекций.
А дальше два подхода
если ты хочешь что то делать то ты изучаешь как правильно использовать продукт;
если ты хочешь понимать как проходят атаки гуглишь атаки конкретно для этого продукта и разбираешь их на сырцах
Ответы: >>1470690
Аноним 2019/09/09 19:01:54  №1470690 3
>>1470004
>ты пойми
Ничего не понял из твоего поста. Для меня это просто каша из непонятных слов, т.к. я совсем новичок в программировании.
>готовые решения
>валидация данных
>продукт
>на сырцах
Мне бы понять, в какую сторону вообще двигаться. Есть ли какой-то гайд или книга годная на эту тему?
Ответы: >>1470854
Аноним 2019/09/10 04:20:05  №1470854 4
>>1470690
Приходит тебе заказ сделать сайт для компании, ты берешь например битрикс для реализации, потому как нет смысла для типичного проекта писать все руками с нуля.
Ты изучаешь как правильно им пользоваться. Например рядовое место для инъекций это формы (для отзывов, для записи на что либо). Соответственно ты смотришь примеры как это правильно сделать в битриксе. И если ты сделаешь по гайдам с офсайта то у тебя и не возникнет проблем.
Ответы: >>1470869 >>1471103 >>1472615
Аноним 2019/09/10 13:25:52  №1471103 5
>>1470854
Теперь немного понял. С нуля - т.е. на чистом пхп без всяких CMS, фреймворков и т.д., да? Т.е. нет особого смысла вкатываться в безопасность, пока не начну работать с фреймворками?
Ответы: >>1471418 >>1472198 >>1472615
Аноним 2019/09/10 18:49:39  №1471418 6
>>1471103
Да, да
Лучшее обучение разбирать чужой хороший код и делать так же