0

我对 HTML、CSS 很擅长,对 jQuery 也不错,但 php 我完全输了!我能否获得有关此表单的帮助,为我在网站上使用的现有 php 代码添加保护的最佳方法是什么。

这是包含所有代码教程的页面http://jorenrapini.com/blog/css/jquery-validation-contact-form-with-modal-slide-in-transition

这是我的网站 已删除链接

这是用于表单的教程中的 php,我希望能在添加适当保护方面提供一些帮助。

<?php
//declare our variables
$name = $_POST['name'];
$email = $_POST['email'];
$message = nl2br($_POST['message']);
//get todays date
$todayis = date("l, F j, Y, g:i a") ;
//set a title for the message
$subject = "Message from Your Website";
$body = "From $name, \n\n$message";
$headers = 'From: '.$email.'' . "\r\n" .
    'Reply-To: '.$email.'' . "\r\n" .
    'Content-type: text/html; charset=utf-8' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

//put your email address here
mail("youremail@domain.com", $subject, $body, $headers);
?>
<!--Display a thankyou message in the callback -->
<div id="mail_response">
    <h3>Thank you <?php echo $name ?>!</h3><br />
    <p>I will answer your message soon as possible.</p><br /><br /><br />
    <h5>Message sent on: </h5>
    <p><?php echo $todayis ?></p>
</div> 

------ 好吧,再澄清一点 ------

http://codeutopia.net/blog/2008/10/16/how-to-csrf-protect-all-your-forms/

这是我在过去两周阅读的关于跨站点请求伪造的众多文章之一,那么您如何向我正在使用的表单应用或添加与此类似的基本保护

4

3 回答 3

1
mail("youremail@domain.com", $subject, $body, $headers); 

显然可以给你发邮件,但是你需要创建一个消息来检查邮件功能是否成功。

所以,

if(mail("youremail@domain.com", $subject, $body, $headers)){
  echo 'Your email is sent';
}else{
  echo 'email is not sent';
}

上面的代码将保证,如果mail()用户出现问题,则会看到一条由服装构建的消息,而不是暴露代码和目录的实际错误

于 2013-05-04T19:49:08.937 回答
1

您必须针对 xss 过滤后值。对于 txt 邮件,您应该以专业的方式去除所有标签。不要只使用 strip_tags()!对于您的标题数据,也去掉所有空格。

于 2013-05-04T20:41:55.060 回答
0

您应该看一下ESAPI 项目,虽然 PHP 版本不适合生产使用(基于他们编写的内容),但您仍然可以了解输入验证和安全性对您的服务意味着什么。

于 2013-05-04T20:11:29.580 回答