php – 不使用服务器端验证的后果?
在服务器上无法验证简单的电子邮件表单的后果是什么?
请记住: >正在进行JavaScript验证 我想使用的PHP代码是: <?php $post_data = filter_input_array( INPUT_POST,FILTER_SANITIZE_SPECIAL_CHARS ); $full_name = $post_data["full_name"]; $email_address = $post_data["email_address"]; $gender = $post_data["gender"]; $message = $post_data["message"]; $formcontent = "Full Name: $full_name nEmail Address: $email_address nGender: $gender nMessage: $message n"; $formcontent = wordwrap($formcontent,70,"n",true); $recipient = "myemail@address.com"; $subject = "Contact Form"; $mailheader = "From: $email_address rn"; mail($recipient,$subject,$formcontent,$mailheader); echo 'Thank You! - <a href="#"> Return Home</a>'; ?> 一个简单的验证码会解决安全问题吗? 更新: 我真的很想回答的几个问题: 我应该提到这个代码是在一个表单生成器中生成的,我想避免我的用户受到攻击.垃圾邮件可能会通过添加验证码进行排序. 更新: 更新: 我打算做的几件事情: >添加为亚历克斯提到: 如果我添加了简单的服务器端验证,我应该验证什么?即使我验证它,用户仍然发送无效数据? 另外,以上是否会阻止垃圾邮件?
一般来说,如果你只是玩耍而不在乎,你根本不需要验证.
客户端验证是毫无意义的,你只会浪费时间.客户端唯一的方法会让你有麻烦.你不能相信你的用户那么多. 如果您打算在实际环境中实际发布或真正使用它,则必须具有服务器端验证.这是非常值得的,因为这是一个简单的形式,但它可能会增长到更多.此外,如果您现在关心验证,则可以稍后再与应用程序/站点的其他组件一起使用它.如果您尝试思考可重用性的条款,您将节省您自己无数次的开发时间. 还有其他用户提到的注入和javaScript问题等明显问题. 看看那些. Coding Horror Decapther 所以您的问题的简单答案是,您当前在当前情况下肯定是脆弱的.我知道更多的开发需要更多的时间,但如果您遵循良好的开发实践,如可重用性和正交/模块化设计,您可以节省大量的时间,仍然可以生产出强大的应用程序. 祝你好运! 更新: 概要: >验证电子邮件 更新: 更新: 首先,PHP是服务器端语言.它在服务器上运行,当发送页面请求时,服务器将“运行”PHP脚本,对请求的页面进行任何更改,然后将其发送给正在请求页面的用户.用户没有访问/控制该PHP脚本.相反,如前所述,客户端脚本(如JavaScript)可以被操纵.但是,只是因为您有一些PHP脚本运行并检查表单上的某些内容,这并不意味着该表单是安全的.这只意味着您正在对表单进行一些服务器端处理.把它放在那里,使它安全是两个不同的东西,我相信你已经弄清楚了. 现在,当我们说你需要服务器端验证时,我们意味着你需要一个好的验证.此外,在这个忙碌的问答格式中,没有人真正提到验证数据和消毒数据之间有区别. 消毒 – 使数据符合一些标准 验证 – 检查数据是否符合标准 看看phpnightly更好的解释和例子. nettuts 非常基本,但你应该得到这个想法. 那么你如何处理你目前的问题呢? >首先,您应该保留您所拥有的内容或客户端验证,并按照您提到的方式添加人机识别系统(CAPTCHA)(请查看我的文章或您可以研究一些好的). 一个.您应该验证数据:所有字段,如电子邮件,名称,主题… >检查数据是否符合您的预期:是否为空?是电子邮件吗?它包含数字吗?您可以在服务器端验证与在用户端验证的相同的数据.唯一的区别是客户端无法操纵该验证. 湾您也可以清理数据 使它小写并比较它,修剪它,甚至将它转换成一个类型,如果你需要.如果你有时间检查出来,那么phpnighty的文章对这两个文章有一个很好的解释,而不用这两个. >用户是否可以发送无效数据? 确保他们可以,但现在他们无法访问验证算法,他们不能只是禁用它或绕过它(严格来说) >此外,以上是否会阻止垃圾邮件? 这个验证的东西听起来好像很多工作,但实际上很简单.看看我包括的教程,我确定代码将使点击.如果您确保不通过表单发送不需要的信息,并且客户端无法操作表单发送到多个电子邮件,那么您几乎是安全的. 我刚刚把这个写在我头顶上,所以如果令人困惑的话只是提出一些更多的问题或给我一个消息.祝你好运! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |