如何防止用户直接在URL中输入变量?

时间:2015-02-08 16:38:42

标签: php .htaccess url url-rewriting

的index.html

<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>

基本上,这里发生的是当用户点击链接时(href =&#34; one.html&#34;),它会显示&#34; one.html&#34;的内容。进入文本区。

用户点击该链接后,该页面将刷新,网址将重写为http://example.com?file=one.html

从&#34; one.html&#34;它包含在变量&#39;文件中,它将收集文件中包含的所有内容&#34; one.html&#34;并将其显示在textarea中。简而言之,变量&#39;文件中的任何内容都是&#39;将其内容显示在textarea中。

这个问题是,任何人都可以重命名&#39; one.html&#39;类似于&#39; do.php&#39;从URL,所以现在&#39; do.php&#39;将显示在textarea中,这意味着任何人都可以查看该文件的PHP代码。

如何阻止用户在URL中输入变量,或者在网址中输入任何PHP文件名?

我相信我可以使用htaccess,但我不知道该放什么

1 个答案:

答案 0 :(得分:0)

您无法控制某人向您的服务器发送的请求。

您需要:

  1. 测试是否允许他们在采取行动之前提出请求(例如,有一个可接受的文件名列表或具有此类列表并将其与特定用户名/密码组合相关联)
  2. 硬编码服务器上的值