2015-02-08 6 views
0

Index.htmlКак запретить пользователям вводить переменную непосредственно в URL-адрес?

<a href='" . $_SERVER['PHP_SELF'] . "?file=" . $file . "' id="okok"> 

    <form action="do" method="post"> 
     <textarea class="source"><?php if(!empty($thesource))echo $thesource; ?> 
    </textarea> 
     </form> 



<script> 
$("#okok").click(function(e) { 
      e.preventDefault(); 
      var url = $(this).val("href"); 
      $.get(url, function(data) { 
         $(".source").html(data); //or append }); }); 
</script> 

В основном то, что происходит здесь в том, что, когда пользователь нажимает на ссылку (A HREF = «one.html»), он будет отображать содержимое «one.html» в текстовое поле.

Как только пользователь нажмет на эту ссылку, страница обновится, и URL-адрес будет переписан на http://example.com?file=one.html.

Так как «one.html» включен в переменную «файл», он будет собирать все содержимое, содержащееся в файле «one.html», и отображать его в текстовом поле. Короче говоря, все, что находится в переменной «файл», будет отображаться в текстовом поле.

Проблема заключается в том, что любой человек может переименовать 'one.html' на что-то вроде do.php из URL-адреса, поэтому теперь содержимое в 'do.php' будет отображаться в текстовом поле, что означает, что любой может просмотрите PHP-код этого файла.

Как запретить пользователю вводить переменные в URL-адрес или вводить любые имена файлов PHP в URL-адрес?

Я считаю, что я мог бы использовать Htaccess, но я не уверен, что положить в

+2

не помещайте имя файла, который будет включен в URL. Он решает эту проблему и исправляет * огромный недостаток безопасности в вашей системе. –

ответ

0

Вы не можете контролировать то, что просит кого-то отправить на сервер.

Вам нужно либо:

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

Существует третья возможность: добавить контрольный код в ссылку (контрольная сумма) – Croises

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