2016-05-17 4 views
0

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

Я придумал это в нашей команде как URL Jumping, это может быть неправильно, но это помогло нам сохранить тему.

Мы работа с ASP.Net версии 4.0 VB.Net

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

Я обнаружил, что, когда URL Jumping, целевая страница из скачка не будет иметь никакой информации о URL Referer -

Если IsNothing (Request.UrlReferrer) = True Then ...

Так что это дало мне крючок для решения проблемы.

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

Кто-нибудь знает о встроенной обработке из ASP.Net? Или это тип проблемы, когда у вас нет выбора, кроме как обрабатывать, проверяя ожидаемые значения базы данных?

+0

Я не знаю, почему вы не должны позволять пользователям делать это? –

+1

Это абсолютно нормальное поведение пользователей. Если у вас возникла проблема, когда люди могут получить доступ к данным анонимно, когда они этого не делают, вам необходимо исправить безопасность своей страницы. – MaCron

+1

* «они пытаются перемещаться по сложным страницам для своих целей» * <это похоже на всю идею интернета (и похоже, что вы пытаетесь ее разбить). Когда это проблема? –

ответ

0

Увидев ответы других членов, учетных записей которых встает за себя и на основе нескольких дней глубоких поисков по всему сайту я не вижу четкой стандартной обработки asp.net, которая решает проблему URL-адреса. AS было предложено другими людьми, с которыми я столкнулся, и расширил собственное решение.

В Page_Load целевой страницы после вызова

If Not Page.IsPostBack Then 
    ... 
End If 

Я поставил

If (Session("IsFirstTime") Is Nothing OrElse Session("IsFirstTime") <> True) Then 
    Session("IsFirstTime") = True 
End If 

Но в самом начале Page_Load я использую чек на URLReferrer, если это ничего не возвращает я проверяю переменная сеанса

If IsNothing(Request.UrlReferrer) = True Then 
     If IsNothing(Session("IsFirstTime")) = False Then 
      ... 
     End If 
End If 

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

Dim pageOne As PageOne = New PageOne() 
If pageOne.PageContinuity = False Then 
    MyBase.ResponseRedirect("~/PageOne.aspx") 
Else 
    Dim pageTwo As PageTwo = New PageTwo() 
    If pageTwo.PageContinuity = False Then 
     'PreviousPageNavigation(sender, e) 
     MyBase.ResponseRedirect("~/PageTwo.aspx") 
    Else 
     ... 

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

Public Function PageContinuity() 
    Try 
     Dim cv = New CustomValidator 
     If PolicyHelper.GetDataSetValue("xxx") = "0" Then 
      cv.IsValid = False 
     End If 
     If cv.IsValid = True Then 
      If PolicyHelper.GetDataSetValue("xxx") = "0" Then 
       cv.IsValid = False 
      End If 
     Else 
      Return cv.IsValid 
     End If 

     Return cv.IsValid 

    Catch ex As Exception 
     Return False 
    End Try 
End Function 

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

Смежные вопросы