<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>
现在每个查看我的html源代码的人都会知道这个php文件的位置,并知道如何调用它。我怎么能阻止这个?
答案 0 :(得分:4)
如果您正确处理/path/hello.php
的POST请求,那么有人是否可以手动访问它。只需确保检查$_POST['click']
的存在以及您希望存在的任何其他POST数据,清理它并正常进行。
如果有人用欺骗性的POST数据来呼叫/path/hello.php
,那么与提交自己的表单有何不同?没有必要修改脚本的可见性。
此外,如果您担心有人能够查看PHP脚本的来源 - 请注意。用户在向PHP脚本发出HTTP请求时唯一能看到的就是呈现的HTML。
然而,即使他们可以 - 为什么你不希望有人看到你的来源(当然,除非在PHP文件中你可能有敏感的配置数据)
答案 1 :(得分:2)
你无法阻止它。如果你要告诉浏览器表单的位置,你必须将地址放在HTML的某个地方,一旦你这样做,任何人都可以看到它
尽管如此,它确实应该没有任何区别,因为你的脚本应该能够处理发送给它的任何值。在任何情况下,您都不能盲目地信任来自客户端的数据,因此您需要验证发送的数据是否是您所期望的 - 无论是通过正常填写表单还是直接调用它来发送数据。 / p>
答案 2 :(得分:1)
我可以举一个很好的例子说明你为什么要这样做。您可能有一项服务并将其提供给第三方,但是为了完成这项工作,可能会出现一些重要的可配置数据。这是一个例子
你拥有一个网站,假设你想在你的网站上创建一些类型的广告活动,但你的“客户”想要在他们的网站上做同样的事情,但数据需要进入你的电子邮件数据库。
可能不是什么大问题,但仍可能存在安全风险。因此,如果你转移或掩盖它可以防止它的一些。
答案 3 :(得分:0)
除了一起放下行动之外,没有办法避免这种情况。然后表单将提交到当前URL。
无论如何,为什么你担心有人访问脚本?如果你已经正确地写了它,那么就不应该公开任何信息,不,它们不会知道如何“调用”它 - 除非通过调用它你只是在浏览器中访问它。如果只是在浏览器中访问它,就会显示敏感信息,你手上就会遇到一些严重的问题。
答案 4 :(得分:0)
我认为你的问题是,通过显示这些路径,人们将能够实际查看php文件的来源。这是不可能的,因为它是由你正在使用的php引擎呈现的。你在这里无所畏惧。
答案 5 :(得分:0)
对不起,这不是一个答案,但对同一主题的一般观察...
我也经历过这一点,似乎知道OP的来源......
我见过很多大型CMS,其形式是&#34;行动&#34;不要显示剧本...几乎就像它指向一个友好的&#34; URL ...
例如<form name="contactform" method="post" action="http://example.com/contact/send-contact">
可以看出,扩展名已丢失,但表单处理正确...
我想htaccess可能会隐藏扩展名,但有些网站会为标准网页添加一些可见的网址,而某些网页则会包含#34;友好的&#34;其他内容(包括表单)的网址。
我不确定这些是如何运作的......
答案 6 :(得分:0)
将.php
文件保留在根目录之上有时被认为是最佳做法,以防止在服务器上错误地配置php并向客户端显示php代码。
您所要做的就是创建一个代理脚本并发布到该脚本。我将操作存储在隐藏字段中,这样我就不需要多个代理脚本。我无法发布源代码,因为我会在另一篇文章中复制我的答案。您可以在此处找到它:https://stackoverflow.com/a/36941336/2452680
答案 7 :(得分:0)
您可以先向第1页提供操作,然后在第1页中,您可以获取数据并重定向并将数据发布到第2页。 如果你正在使用phpin page1,你可以使用curl和options来放置数据并执行它。