Как обезопасить мои общие вызовы обработчика? - PullRequest
5 голосов
/ 09 июля 2010

Я создаю приложение myspace и для некоторых записей базы данных использую общие обработчики, которые я разместил на другом веб-сайте. Из моего приложения MySpace я использую вызовы ajax к этим обработчикам для выполнения действий, которые я хочу. Я хочу знать, как я могу сделать эти вызовы ajax безопасными? Я хочу убедиться, что обработчики вызываются только приложением myspace, а не вводом url в браузер и т. Д. Есть идеи?

Ответы [ 3 ]

2 голосов
/ 29 февраля 2012

Вы можете защитить свой универсальный веб-обработчик, выполнив трюк с UrlReferrer, например, для

if (context.Request.UrlReferrer == null) 
 { 
      context.Response.Write("Invalid Request"); 
      return; 
 }

Кроме того, вы можете проверить, если UrlReferrer! = Null, тогда имя домена должно совпадать с вашим входящим URL-адресом запроса, например, для

 if(Request.UrlReferrer.ToString().indexOf("http://www.tyamjoli.com")!=-1)
 {
 //Valid request 
 }
0 голосов
/ 10 июля 2010

Я не знаю много о приложениях MySpace, но есть ли в нем серверный компонент? Если это так, вы можете сначала запросить «токен» из приложения, который будет зашифрованным действием и произвольным тайм-аутом, скажем 3 секунды. Затем токен передается универсальному обработчику, который расшифровывает его, а затем проверяет время ожидания. Если он действителен, то дешифрованное действие выполняется.

Внешние факторы, такие как задержка в сети и несинхронизированные часы, могут помешать выполнению некоторых действий. Это должно препятствовать простым атакам воспроизведения, но все еще уязвимо для скриптовой атаки.

0 голосов
/ 09 июля 2010

Это на 100% невозможно. Каждый будет иметь доступ к вашему javascript и может изменять его по своему усмотрению. Они могут использовать TamperData для просмотра всех запросов, которые делает браузер, и отбрасывать / изменять / воспроизводить их.

...