Встроенная ссылка на карту Google вызывает опасную ошибку Request.Path в mvc 3.0 - PullRequest
0 голосов
/ 04 февраля 2011

Я сохраняю в базе данных (Table.Field = Business.GoogleMap) ссылки из GoogleMap следующим образом:

http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=22,+Cholul,+Yucat%C3%A1n,+M%C3%A9xico&aq=0&sll=21.029046,-89.634623&sspn=0.024395,0.033045&ie=UTF8&hq=&hnear=22,+Cholul,+Yucat%C3%A1n,+Mexico&ll=21.040207,-89.558401&spn=0.048465,0.06609&z=14&iwloc=A

Затем, на мой взгляд, я использовал его следующим образом:

<iframe width="940" height="450" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" 
src="@Html.Raw(Model.Business.GoogleMap)">
</iframe>

Тогда я получаю ошибку:

потенциально опасный Request.Path значение было обнаружено от клиента (&).

Я попытался исправить «Проверка», добавив [ValidateInput(false)] к контроллеру и даже добавив <httpRuntime requestValidationMode="2.0" /> в web.config, но ошибка все еще там.

Ответы [ 2 ]

2 голосов
/ 03 декабря 2012

У меня была такая же проблема при использовании ссылок, таких как Google Maps.Все, что вам нужно сделать, это применить [AllowHtml] над моделью, пытаясь сохранить / получить доступ к этой ссылке / данным.Таким образом, это выглядело бы примерно так:

public class Locations
{
[AllowHtml]
public string Map_Link { get; set; }
} 

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

1 голос
/ 04 февраля 2011

Скорее всего, вам нужно правильно кодировать URL-адрес карты Google (или что-то еще, что делает запрос. Путь опасным) при публикации его на вашем контроллере.

ПохожеВы можете добавить атрибут requestPathInvalidCharacters с пустым значением в ваш раздел httpRuntime в web.config, чтобы эти «недопустимые» символы были в URL ( см. здесь ).Но я думаю, что правильная обработка URL в первую очередь была бы лучшим решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...