jQuery autocomplete - скрыть содержимое страницы запроса php - PullRequest
1 голос
/ 08 апреля 2011

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

Ответы [ 4 ]

1 голос
/ 08 апреля 2011

Это должно работать, поместите его вверху страницы

  if($_SERVER['HTTP_X_REQUESTED_WITH'] !='XMLHttpRequest'){
     die();
  }

jQuery автоматически отправляет заголовки с запросами AJAX

1 голос
/ 08 апреля 2011

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

$.ajax({
    url: "data.php",
    type: "GET",
    dataType: "html",
    headers: {custom:'showdata'},
    success:function(){}
});

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

Очевидно, что он не идеален, но многие пользователи не увидят данные, которые вы пытаетесь скрыть

1 голос
/ 08 апреля 2011

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

if ($ _GET ['ninja']! = 'Chop') {return 'Извините, эта страница недоступна напрямую';} else {// данные сгенерированы и возвращены здесь}

Да, их можно победить.Но примите во внимание, "какой смысл?"Вы храните критически важные данные?Неужели это не видно?По этой причине многие небольшие веб-сайты содержат ужасно небезопасный и уязвимый XSS-код и, тем не менее, никогда не подвергаются взлому ... Хакеру просто не стоит тратить время на разработку пользовательского хака для получения данных, которые там находятся.Взлом Windows, с другой стороны, предоставляет миллионы (миллиарды?) Целей для совершения всевозможных гнусных действий.Я, конечно, не говорю, что ваш сайт не важен, но это не тот случай, когда требуется трехкратная избыточная безопасность.

1 голос
/ 08 апреля 2011

Нет, вы не можете: поскольку вы говорите, что пользователь запрашивает контент (ну, браузер пользователя), поэтому контент должен быть доступен пользователю, каждый метод "маскировки" может быть легко побежден опытный пользователь.

...