【发布时间】:2014-12-20 11:28:10
【问题描述】:
传递 URL 变量是否安全?是的,我知道它们存在于普通站点中,任何人都可以查看并查看.... 这不是 SSN 或任何东西。我不是在谈论 HTTPS 项目,只是传递一个标题和一个电子邮件地址....
例如,假设在网站的“关于我们”页面中,有一个员工列表。让我们以“吉米”为例。吉米有个人简介和照片,以及他的个人简介旁边的 [联系吉米] 按钮。如果有人点击 [CONTACT JIMMY],它会执行以下操作:
<a href="contact.php?title=Jimmy&emailto=jimmy@mysite.com">
在contact.php中,我检查变量是否通过,如果没有,设置默认值:
<?php
// Checks to see if $emailto is empty, if so, it will send to this default email address
if (empty($_GET['emailto'])) {
$_GET['emailto'] = 'info@mysite.com';
}
?>
<?php
// Checks to see if $title is empty, if so, will default the the selected title "US"
if (empty($_GET['title'])) {
$_GET['title'] = 'Us';
}
?>
提交后,contact.php 表单会在提交前剥离代码、检查有效性等。在这个黑客和垃圾邮件机器人的时代,我仍然觉得在 URL 中有它们是赤裸裸的。如果传递变量是一种可怕且难以形容的方式,那么对如何完成同样的事情有任何想法吗?我宁愿不要在联系表上下拉供人们选择联系谁,但我想这是一个选项。好吧....善良! ;)
【问题讨论】:
-
@jeroen 它不会比任何其他实现更容易受到垃圾邮件的影响;除非您要在所有链接和表单等中实施 CSRF;这是不可行且不太可能发生的,那么所有请求都可能成为垃圾邮件的原因。
-
@Bowersbros 你说得对,我的评论太宽泛了,没有针对问题...