如何阻止PHP文件被外部域击中?

如何阻止PHP文件被外部域击中?,php,forms,security,form-submit,contact-form,Php,Forms,Security,Form Submit,Contact Form,我在我的网站上有一个联系人表单,页面名为(contactus.php),填写并点击后进入php文件(contact.php)。两者都在同一服务器中,即在同一域下。现在有人在我的(contactus.php)页面外面填写我的联系表,我收到了很多垃圾邮件。现在经过搜索,我找到了他,也找到了他的密码。他在使用下面的代码 <form name="myform" id="myform" method="post" action="http://www.mydomain.com/contact.php

我在我的网站上有一个联系人表单,页面名为(
contactus.php
),填写并点击后进入php文件(
contact.php
)。两者都在同一服务器中,即在同一域下。现在有人在我的(
contactus.php
)页面外面填写我的联系表,我收到了很多垃圾邮件。现在经过搜索,我找到了他,也找到了他的密码。他在使用下面的代码

<form name="myform" id="myform" method="post" action="http://www.mydomain.com/contact.php">
<input type="text" ...
<input type="email" ...
<textarea type="text" ...
<input type="submit" ...
</form>


这可以减轻类似于您如何保护自己免受跨站点请求伪造(CSRF或XSRF)攻击的影响

这应该让您从基础开始:


如果您使用的是任何一种成熟的框架,那么应该内置一个保护机制。

这不是CSRF。CSRF是关于无意的请求,而垃圾邮件是相当有意的。@Gumbo,我尊重地不同意;这是非常CSRF。请求者的意图是不相关的,由站点的所有者来定义是否需要请求。任何外部POST请求都应被视为是无意的(因为在网站中,own并不打算以这种方式使用他的表单),并且应受到保护,以防受到攻击。OWASP将CSRF定义为:“CSRF是一种攻击,它迫使最终用户在其当前已通过身份验证的web应用程序上执行不必要的操作。”在CSRF中,请求者的意图怎么可能无关?这是将缺陷声明为CSRF的唯一相关方面。问题是:“web应用程序没有或不能充分验证提交请求的用户是否故意提供格式良好、有效、一致的请求。”垃圾邮件发送者故意发送垃圾邮件请求,因此根据定义,这绝对不是CSRF。防止CSRF的技术也可能有助于减少垃圾邮件,但这绝对不是CSRF。啊。。。现在我明白了区别。谢谢@秋葵,那么“跨站点发布”是一件事吗?我知道它有合法的用途,但在这种情况下,它会被正式视为“攻击”吗。如果是这样的话,这种攻击有名字吗(我编造了跨站点的帖子)?@AymanSafadi简而言之,我无法编辑我的HTML联系人表单。我只需要在我的
contactus.php
页面标题和
contact.php
标题上添加一些额外的代码。而不是编码的其余部分。我正在考虑在
contactus.php
页面上添加一些隐藏密码,点击后,首先由
contact.php
检查,匹配后,运行其余的编码。这是可能的吗?表单的工作方式与链接完全相同-你会问这样的问题吗“我如何阻止人们从外部域链接到我的网站”@AmalMurali我希望从我的域中获得无限的点击率,但不是其他…@fdreger我只是想停止从我的域外点击一个文件。默罕默德哈桑:你只是问,我只是回答:形式就像链接。你能创建一个链接无法指向的页面吗?“来自外域”?@fdreger我没听懂你的话。简而言之,我无法编辑我的HTML联系人表单。我只需要在我的
contactus.php
页面标题和
contact.php
标题上添加一些额外的代码。而不是编码的其余部分。我正在考虑在
contactus.php
页面上添加一些隐藏密码,点击后,首先由
contact.php
检查,匹配后,运行其余的编码。这可能吗?