我通过POST方法而不是HTTPS通过POST方法发送未加密的电子邮件和密码。

有人可以查看原始帖子数据吗?

我想象原始帖子数据看起来像这样:email='example@aaa.com'&password='qazwsx'

我知道我应该加密密码,但这只是我的例子。

实际上,我传递了很多敏感信息。

编辑:

我目前有一个名为register.php的php脚本,它的名称确切地表示了这一点。

只要有足够聪明的人就可以猜测我正在使用两个名为“ email”和“ password”的变量,只需发送一些POST数据就可以实现新用户的注册。 如何防止这种利用? 显然,它与SSL无关,这是我的第二个担忧。

我不希望17岁的“黑客”在3天内生成18,838,929个新帐户。

===============>>#1 票数:2

POST数据在请求正文中未加密地发送。 与使用GET传递一样安全,尽管视觉效果较差。 例如,如果您的用户通过公共/不安全(WiFi)网络连接,则网络后面的某人总是有可能拦截流量和所有HTTP数据。

考虑到您传递敏感数据,最安全的解决方案是使用HTTP over SSL(HTTPS)。 这将为您处理加密。 您还可以进行某种内部客户端加密,然后发送数据,但是为了确保安全,HTTPS是必经之路。

编辑:至于第二个问题,一种防止自动请求的简单/基本方法是检查每个请求的Referer和Origin标头。 这样,您可以过滤掉任何场外请求。 另一个选择是限制相同时间的IP地址和用户代理详细信息组合的每个时间间隔的请求数。 这些方法都不是完全安全的,但可以与可靠的验证码测试结合使用。

===============>>#2 票数:0

使用会话。

每当用户/客户端访问您的注册页面时,请创建一个新的会话标识符,然后使用该标识符来验证请求。 您首先看到的是验证码背后的主要思想。 或者更好:

<?Php
session_start();

if(isset($_SESSION['input1'])
&& isset($_SESSION['input2'])
&&(strtoupper($_SERVER['REQUEST_METHOD']) === 'POST'
|| strtoupper($_SERVER['REQUEST_METHOD']) === 'GET'))
{   if(isset($_POST[$_SESSION['input1']])
    && !empty($_POST[$_SESSION['input1']])
    && isset($_POST[$_SESSION['input2']])
    && !empty($_POST[$_SESSION['input1']]))
    {    //PROCESS YOUR POST DATA HERE
         $myInput1 = sanitize($_POST[$_SESSION['input1']]);
         $myInput2 = sanitize($_POST[$_SESSION['input2']]);
         echo "My variables are {$myInput1} and {$myInput2}.";
         //AND ET CETERA
    }
    else
    {    session_unset();
         session_destroy();
         echo <<<REDIRECTION
         <script type='text/javascript'>
             alert("You've had a premature detonation. Call 911.");
             window.location.replace('{$_SERVER['PHP_SELF']}');
         </script>
REDIRECTION;
    }
    clearsess();
    exit();
}

function sanitize($variable,$conn=NULL)
{    if ($conn != NULL)
        return mysqli_real_escape_string($conn, filter_var($variable, FILTER_SANITIZE_STRING));
    else
        return filter_var($variable, FILTER_SANITIZE_STRING);
}

function createForm()
{   $_SESSION['input1'] = rand(1111,9999);
    $_SESSION['input2'] = rand(11111,99999);
    return <<<NEWFORM
    <form action = '{$_SERVER['PHP_SELF']}' method = 'post'>
       <input  type='text' name='{$_SESSION['input1']}'>
       <input  type='text' name='{$_SESSION['input2']}'>
       <input type='submit' value='submit'>
       <input type='reset' value='reset'>
    </form>
NEWFORM;
}

function clearsess()
{   if(session_id() != '' && empty($_SESSION))
    {  session_unset();
       session_destroy();
    }
    session_write_close();
}
?>
<html>
<head></head>
<body>
<?Php echo createForm(); ?>
</body>
</html>
<?Php clearsess(); ?>

好吧,尽管您可以将其与验证码结合使用。 验证码肯定也会使用会话。

  ask by Nick Keroulis translate from so

未解决问题?本站智能推荐:

1回复

Perl中的原始POST数据?

在PHP中, php://input能够读取原始请求正文数据,这是我在这种情况下所需要的。 然而,服务器端主干的其余部分都是用PERL编写的,所以我试图找到php://input的替代方案 - 我做不到。 简短的问题: 如何在Perl中获取原始POST数据( 请求体 )? (CG
1回复

重定向到带有原始帖子数据的URL

我的问题与以下问题相同: 使用HTML表单发送RAW数据POST请求? 除了一个例外:在我的情况下,给出的答案均无效。 我需要与第三方API通信,但不幸的是我无法控制该API。 通常这是在服务器端进行的,因此我通过PHP脚本中的CURL进行通信。 但是,有一个地方我碰壁。 我的
2回复

XMLHTTP请求传递JSON字符串作为原始发布数据

我的JavasSript发送请求: 现在我所有的php都是: 原始发布数据的输出是对象字符串,但发布数组为空。 我需要以$_POST变量的正确格式获取它,并且jquery不是一个选择。
3回复

无法读取原始POST正文数据 - 在此示例中如何执行此操作?

我正在为另一位开发人员设置我的服务器API。 我目前正在使用Flash AIR将POST数据发送到我的服务器,并简单地提取变量 但是,他没有使用Flash,并且正在发送数据: 我的服务器正在向他返回一个错误,指出缺少'command'参数。 我需要做什么才能从上面的数据中
1回复

将原始POST XML解析为文本字段

我需要将通过HTTP POST发送的XML数据存储到我的服务器。 在日志文件中,我看到数据已成功发送到我的服务器。 但是我不知道如何获取数据。 我试图用php:// input流捕获它们,如下面的代码所示。 我看到的问题是,仅在调用包含代码的文件时才读取php:// input。
1回复

使用CURL而不使用file_get_contents从php:// input获取/读取原始帖子数据

我的服务器人员禁用了所有套接字功能,在请求它们后,他们启用了CURL,我正在与他们协商其他功能。 同时,在我的代码之一中,我想从php:// input读取原始发布数据 我正在使用file_get_contents(“ php:// input”)来获取原始帖子数据,但是在服务器中仅
1回复

AngularJS HTTP Post response.data是PHP的原始文本

我对angular和php很陌生。 我正在尝试使用angularjs从html页面发布到php页面。 帖子成功,但是response.data是php文件的纯文本,而不是我回显的json对象。 的test.html test.php的
4回复

PHP不发送POST数据

我终于得到了我的注册页面的第一页。 在继续下一页之前,用户必须从三个选项中选择一个。 我现在遇到的问题是,第一页不将数据发送到下一个页面。 这是代码 Registration_1.php: Registration_2.php 但是regtype是空白的,这意味着我没
2回复

$ _POST数据未发送

我有一个简单的表格正在工作,现在我发现帖子数据没有被发送,我看不到问题 由...处理 由于发布数据丢失,它始终显示错误,但我只是看不到自己做了什么。 有任何想法吗?
1回复

PHP POST数据未显示

我在获取一个简单的PHP登录表单以传递和检查数据库登录数据方面遇到麻烦。 由于某些原因,数据不会从Html表单传递到PHP处理程序。 两者都是单独的文件,但是代码如下: 然后是PHP冒牌货:(请注意,我尚未添加用于对照数据库进行检查的代码。) 是什么导致数据无法正确发布,我在