0

我正在使用 vtiger 并在网站联系页面上收到大量垃圾邮件我正在使用此代码

        <form name="contact" action="REMOVED" method="post" accept-charset="utf-8"> 
    <input type="hidden" name="publicid" value="REMOVED"></input>
    <input type="hidden" name="name" value="contact"></input>        
    <label>First Name</label>
    <input type="text" value="" name="firstname"  required="true"></input>  
    <label>Phone</label>
    <input type="text" value="" name="phone"  required="true"></input>  
    <label>Last Name</label>
    <input type="text" value="" name="lastname"  required="true"></input>   
    <label>Email</label>
    <input type="text" value="" name="email"  required="true"></input>  
    <label><span>*</span>Street</label>
    <input type="text" value="" name="lane"  ></input>  
    <label><span>*</span>Postal Code</label>
    <input type="text" value="" name="code"  ></input>  
    <label><span>*</span>City</label>
    <input type="text" value="" name="city"  ></input>  
    <label>Country</label>
    <input type="text" value="" name="country"  ></input>   
    <label><span>*</span>County</label>
    <input type="text" value="" name="state"  ></input> 
        <label for="comments"><span>*</span>Description</label>d
    <textarea name="description" cols="40" rows="3" name="description"  id="description"></textarea>

我遇到的问题是提交到不在网站上的另一个 URL,并且我尝试过的每种反垃圾邮件方法(12+1 =)仍然发送表单,无论答案如何

我已经删除了网站的链接

对此的任何帮助都会很棒

4

2 回答 2

4

向您不使用的表单添加一个额外的字段。用css隐藏它。

访问该页面的垃圾邮件机器人将填充所有字段,即使它们未显示。

如果隐藏字段中有内容,则整个表单都是垃圾邮件,您可以丢弃数据。

于 2012-10-11T15:32:25.937 回答
1

我会向您推荐其他反垃圾邮件方法 - 使用令牌/私钥。

在 HTML 表单中你把这个:

<form action="..." method="post">
<?php
$publicKey = rand()%9;
$privateKey = 0.9;
$token = sha1( $publicKey * $privateKey + $privateKey );    
?>
<input type="hidden" name="publicKey" value="<?php echo $publicKey; ?>" />
<input type="hidden" name="token" value="<?php echo $token; ?>" />
</form>


并在 IF 条件之前添加几行代码 - 例如:带有 SQL 查询或发送邮件的片段,只是为了通过 POST 方法检查/验证发送的令牌:

<?php
$publicKey = $_POST['publicKey'];
$privateKey = 0.9;
$token = sha1( $publicKey * $privateKey + $privateKey );

if ( $token == $_POST['token'] ) {

// do something, eg: SQL query, send mail

}
?>

记住!始终验证和清理您的所有输入数据!:)

于 2012-10-28T09:05:16.003 回答