Хранение ссылок, предоставленных пользователями PHP/MYSQL

Каков наилучший или самый безопасный способ обработки пользовательских URL. Я ищу URL-адреса людей в социальных сетях; Twitter, Google+, Facebook, YouTube и т. д. Я хочу иметь возможность взять эти URL-адреса и хранить их в моей базе данных без риска для базы данных или веб-сайта.

Какие у меня варианты? Отфильтровываю ли я символы ввода и выхода / исключаю, могу ли я принимать только частичный URL?

Я до сих пор не уверен, как лучше отфильтровать эти ссылки, я думал о системе, которая сравнивает предоставленную пользователем ссылку с массивом приемлемых форматов.

то есть.

моя ссылка на Facebook - https://www.facebook.com/lilbugga, но я также могу использовать https://www.facebook.com/532850510.

Это сразу 2 варианта, а затем poeple может попытаться отправить ссылку на свой профиль с http, https, www, без www и т. Д. И т. Д.

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

1 ответ

Большой риск, связанный с URL-адресами, заключается не в том, что они содержат (что вы можете очистить так же, как любые другие данные, поступающие в вашу систему), а в том, куда они направляются. Ваша проблема должна быть связана с отправкой ваших пользователей через перенаправление, которое приводит к заражению вредоносным ПО, фишинговым сайтам и так далее. Кроме того, поиск путей максимально возможной фильтрации спама - любая открытая веб-страница, которая может принимать входные данные, станет гарантированной целью для спамеров, независимо от того, насколько они неясны, поэтому вам придется подумать об этом в своем дизайне.

Возможно, вы захотите взглянуть на что-то вроде API безопасного просмотра от Google (я уверен, что существуют другие альтернативы) как на способ определения потенциально проблемных URL-адресов до того, как вы их запустите.

Другие вопросы по тегам