在html表单提交中隐藏php文件url

在html表单提交中隐藏php文件url,php,html,Php,Html,现在,每个看我的html源代码的人都知道这个php文件的位置,并且知道如何调用它。如何停止此操作?如果您正确处理对/path/hello.php的POST请求,则无论是否有人手动访问它都不重要。只需确保您正在检查是否存在$\u POST['click']以及您希望存在的任何其他POST数据,清除它,然后按正常方式继续 如果有人用伪造的帖子数据调用/path/hello.php,那么这与他们提交自己的表单有什么不同?不需要修改脚本的可见性 此外,如果您担心有人会查看您的PHP脚本的源代码,请不要这

现在,每个看我的html源代码的人都知道这个php文件的位置,并且知道如何调用它。如何停止此操作?

如果您正确处理对
/path/hello.php
的POST请求,则无论是否有人手动访问它都不重要。只需确保您正在检查是否存在
$\u POST['click']
以及您希望存在的任何其他POST数据,清除它,然后按正常方式继续

如果有人用伪造的帖子数据调用
/path/hello.php
,那么这与他们提交自己的表单有什么不同?不需要修改脚本的可见性

此外,如果您担心有人会查看您的PHP脚本的源代码,请不要这样做。如果用户向您的PHP脚本发出HTTP请求,唯一能看到的就是呈现的HTML


但是,即使他们可以--你为什么不想让别人看到你的源代码(当然,除非在PHP文件中有敏感的配置数据)

你也无法阻止它。如果你要告诉浏览器表单在哪里,你必须把地址放在HTML的某个地方,一旦你这样做了,任何人都可以看到它


不过,这并没有什么区别,因为您的脚本应该能够处理发送给它的任何值。在任何情况下,您都不能盲目信任来自客户机的数据,因此您需要验证发送的数据是否符合您的期望-无论这些数据是通过正常填写表单发送的,还是有人直接调用表单发送的。

除了停止所有操作之外,没有其他方法可以避免这种情况。然后表单将提交到当前URL


无论如何,你为什么担心有人访问脚本?如果你写得正确,就不应该暴露任何信息,而且,不,他们不会知道如何“调用”它——除非调用它意味着只需在浏览器中访问它。如果只是在浏览器中访问它,就会显示敏感信息,那么您就有一些严重的问题。

我认为您的问题是,通过显示这些路径,人们将能够实际查看php文件的源代码。这是不可能的,因为它是由您正在使用的php引擎呈现的。你没什么好害怕的。

对不起,这不是答案,而是对同一主题的一般观察

我也经历过这一点,似乎知道OP是从哪里来的

我见过很多大型CMS,其中表单“动作”不显示脚本。。。几乎就像它指向一个“友好”的URL

例如

可以看出,扩展名缺失,但表单处理正确

我想htaccess可能会隐藏扩展,但有些扩展混合了标准页面的可见URL和其他内容(包括表单)的“友好”URL


我不确定这些是如何工作的…

我可以举一个很好的例子来说明您为什么要这样做。您可能拥有一项服务,并将其提供给第三方,但是为了使其发挥作用,可能会公开一些重要的可配置数据。这里有一个例子

你拥有一个网站,比如说你想在你的网站上创建某种类型的广告活动,但是你的“客户”想在他们的网站上做同样的广告,但是数据需要进入你的电子邮件数据库

  • 你可能不想让他们知道你用的是谁
  • 这些服务可能要求您向您的帐户添加帐号或某种类型的标识参数

  • 这可能不是什么大问题,但仍然可能是一个安全风险。因此,如果您转移或屏蔽它,它可以阻止其中的一部分。

    有时认为最好的做法是将
    .php
    文件保留在根目录之上,以防止服务器上错误配置php并向客户端显示php代码的罕见情况


    您所要做的就是创建一个代理脚本并发布到该脚本。我将操作存储在一个隐藏字段中,这样就不需要多个代理脚本。我不能发布源代码,因为我会在另一篇文章上重复我的答案。您可以在这里找到它:

    您可以首先对第1页进行操作,然后在第1页中获取数据,并将数据重定向并发布到第2页。
    如果您使用的是phpin page1,您可以使用curl和options来放置数据并执行它。

    那又怎样?这个“可见性”有什么问题?ZOMG。。。人们可以查看地址栏,了解如何访问包含此表单的页面。向山跑去!如果您知道脚本的绝对路径,那么用户不能下载它吗?假设您的PHP设置正确,不,他们不能。他们所看到的只是hello.php脚本的输出(如果没有输出,则是一个空白页面),他们看不到php源代码。试着自己直接在浏览器中键入路径来查看。难道没有办法愚弄用户吗?比如在htaccess文件中添加url规则?
    <form action="/path/hello.php" name='myForm' method='post'>
    <!--  onChange="ajaxFunction();"  -->
    <input type= "text"  name="user" id= "txtname" /><br />
    <!-- <input type="text" name="user2" id="txtname2" /> -->
    <input type='submit' name = "click"  />
    </form>