Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как проверить и отобразить ссылку?
|
|||
|---|---|---|---|
|
#18+
Пользователь в качестве своих контактных данных ввел ссылку на другой сайт (в специально предназначенное для этого поле формы). Это может быть ссылка на его сайт, на страницу вконтактике и т.п. Она хранится в базе и отображается при отображении контактной информации пользователя с помощью тэга <a> Два вопроса: 1) Как провалидировать ссылку при вводе в разумных пределах? (протокол может быть не обязательно только http://) 2) Как безопасно вывести ее потом (рендерю Razor-ом) на страничку в предположении, что пользователь может быть либо криворуким, либо злоумышленником ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2015, 23:30 |
|
||
|
Как проверить и отобразить ссылку?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Провалидировать: 1) с помощью регулярного выражения 2) с помощью Uri.TryCreate При выводе внешней ссылки необходимо присовокупить к адресу протокол, если он отсутствует, иначе ссылка будет относительной сайта. Это также можно сделать с помощью объекта Uri. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2015, 23:49 |
|
||
|
Как проверить и отобразить ссылку?
|
|||
|---|---|---|---|
|
#18+
Shocker.ProКак провалидировать ссылку при вводе На клиенте можно валидировать с помощью скрипта Код: javascript 1. 2. 3. 4. 5. Или с помощью https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Validation/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2015, 23:55 |
|
||
|
Как проверить и отобразить ссылку?
|
|||
|---|---|---|---|
|
#18+
Валидация на клиенте не отменяет необходимость повторной валидации на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2015, 23:56 |
|
||
|
Как проверить и отобразить ссылку?
|
|||
|---|---|---|---|
|
#18+
Ну уж регулярку я могу найти или сварганить. Ограничивать [0-9A-Za-z] - прошлый век, сейчас полно национальных сайтов и зон Не говоря уж об ограничениях списком доменов первого уровня, как в некоторых примерах по ссылке, или на наличие www, как в твоем примере, что совсем уже смешно. Ограничивать протоколами http(s)/ftp - не знаю, логично ли? Существуют же ссылки sopcast, например и т.п., может просто проверять на ".+:\/\/" ? Вопрос-то, по большому счету, был не о том, как регулярку написать, а о принципах проверки, чтобы дать пользователю максимальную свободу, но при этом не накосячить в безопасности самого сайта (если пользователь дал кривую ссылку - это его проблема, если фишинговую - это проблема того, кто кликает). Возможно, рендеринг самого разора обезопасит ее по полной программе и ничего особо предпринимать не требуется? Спрашиваю потому, что я могу просто чего-то не знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 00:13 |
|
||
|
Как проверить и отобразить ссылку?
|
|||
|---|---|---|---|
|
#18+
Uri.TryCreate - спасибо вероятно, этого будет достаточно для моих целей, поковыряю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 00:18 |
|
||
|
Как проверить и отобразить ссылку?
|
|||
|---|---|---|---|
|
#18+
Shocker.ProОграничивать [0-9A-Za-z] - прошлый век, сейчас полно национальных сайтов и зон Ну это образный пример. Shocker.ProОграничивать протоколами http(s)/ftp - не знаю, логично ли? Существуют же ссылки sopcast, например и т.п., может просто проверять на ".+:\/\/" ? Логично, я считаю, если ты в поле ввода просишь ссылку на глобальный ресурс, то это http(s)/ftp, остальные слишком специфичные, это зависит от задач. Так-то в URI можно передать и ссылку на локальный файл, только смысл? Shocker.ProВозможно, рендеринг самого разора обезопасит ее по полной программе и ничего особо предпринимать не требуется? Спрашиваю потому, что я могу просто чего-то не знать. Не совсем ясно на каком этапе ты хочешь безопасности — на этапе получения/сохранения информации, или на этапе вывода? Превалидация предпочтительнее, так как избавит от возможных ошибок в последствии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 02:19 |
|
||
|
Как проверить и отобразить ссылку?
|
|||
|---|---|---|---|
|
#18+
hVosttЛогично, я считаю, если ты в поле ввода просишь ссылку на глобальный ресурс, то это http(s)/ftp, остальные слишком специфичные, это зависит от задач. Так-то в URI можно передать и ссылку на локальный файл, только смысл?ну ок, это вопрос организационный hVosttНе совсем ясно на каком этапе ты хочешь безопасности — на этапе получения/сохранения информации, или на этапе вывода? Превалидация предпочтительнее, так как избавит от возможных ошибок в последствии.больше на этапе вывода, хотя вопрос, конечно, комплексный. Грубо говоря, string/IHtmlString защищает от того, чтобы в выводимых данных (особенно тех, которые были ранее введены пользователем тем или иным способом) не оказалось что-то типа <script> и т.п. Про это в учебниках упоминают, про ссылки же мне ничего не попадалось, поэтому пытаюсь перестраховаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 08:48 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38874325&tid=1356714]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
76ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 383ms |

| 0 / 0 |
