2010-10-01 4 views
3

Я создаю сценарий, который позволяет моим пользователям открывать страницу, голосовать за наш сайт, а затем получать пароль на ограниченный контент на сайте. Тем не менее, я планирую хранить пароль в файле за пределами public_html, чтобы он не мог быть прочитан непосредственно из исходного кода.Есть ли способ сделать вызов AJAX в файл выше public_html?

Есть ли способ сделать вызов AJAX в файл выше public_html? Я не хочу, чтобы AJAX в файл внутри public_html, который будет читать файл, он просто победит цель.

+1

Вы вознаграждаете голосование за свой сайт с доступом к ограниченному контенту? ... вы * подкупаете * своих пользователей? ... где ваш сайт? = D –

ответ

3

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

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

С другой стороны, пароль может попасть на клиентскую сторону в вызове Ajax (в зависимости от того, что делает ваш вызов Ajax). В принципе, если JS может получить доступ к паролю, то так может любой заинтересованный пользователь.

+0

Я не хочу, чтобы AJAX в файл внутри public_html, который будет читать файл, он просто победит цель. – esqew

+0

@ seanny94, тогда ответ на ваш вопрос прост: ** нет **. –

+0

:(Спасибо в любом случае – esqew

1

Нет, вы не можете этого сделать.

Веб-сервер не позволяет это делать.

Кроме того, очень сложно обеспечить доступ к файлам non public_html на сервере.

0

Нет, у вас не может быть вызов AJAX к файлу, который не обслуживается веб-сервером (я предполагаю, что файл выше public_html не имеет установки Apache ALIAS или виртуального каталога).

Чтобы сделать то, что вы пытаетесь сделать, создать скрипт (PHP?) На вашем сайте, который вызывает AJAX и этот сценарий будет либо:

  1. Прочитайте файл паролей, где он находится на системе (при условии, что файл имеет правильные права доступа к файлам)
  2. Вставьте пароль в самом скрипте, так как исходный код сценария не может быть восстановлен.
+0

Я не хочу, чтобы AJAX в файл внутри public_html, который будет читать файл, он просто победит цель. – esqew

+0

Если файл является серверным скриптом (например, php-скриптом), то он сначала обрабатывается перед возвратом веб-сервером, поэтому исходный код сценария не просматривается пользователями на вашем сайте. В этот момент скрывается пароль в самом скрипте на стороне сервера, в другом файле на сервере или внутри база данных является спорным вопросом. – burkestar

0

No. Запрос AJAX - это просто запрос, как любой другой, который загружает ресурс с вашего сервера. Единственное различие заключается в том, что он предоставляет результат javascript на уже загруженной странице вместо загрузки новой страницы. Поэтому, если запрос AJAX может получить этот безопасный файл, чем любой может.

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

Возможно, вам придется пересмотреть свой подход здесь.

0

Почему вы не вызываете вызов AJAX на какую-либо функцию просмотра на сервере, которая может получить доступ к нужному файлу, а затем возвращать любые данные в запрос AJAX?

+0

Я не хочу AJAX в файл внутри public_html, который будет читать файл, он будет просто поражение цели. – esqew

+0

@ seanny94, вы не AJAXing к определенному статическому файлу самим по себе ... вы должны выполнить запрос AJAX к какой-то логике вида на веб-сервере, который будет выполнять некоторую функцию и возвращать ответ AJAX, который имеет то, что вам нужно. Эта «некоторая функция» может заключаться в том, чтобы идти и захватывать любые данные, которые вы хотитеиз этого файла вне публичной директории. – kafuchau