我目前正在开发codeigniter中的一些东西,这是一个我需要更多安全性的项目。 (我买了ssl证书)
我看到如果我创建了一个函数,让我们说一下当我提交帐户详细信息来注册帐户时调用的函数,我可以轻松地直接调用它。
首先,它看起来很糟糕。我想知道是否有任何安全问题我应该担心。
我在互联网上发现阻止直接访问的方法是将其放在每个函数中:
$THE_REFER = strval(isset($_SERVER['HTTP_REFERER']));
if (!$THE_REFER)
redirect('home');
但看起来并不专业。
谢谢
答案 0 :(得分:2)
您在寻找公共与私人功能吗?
<强> HTML 强>
<form method="POST" action="/validate/register">
<!-- username, password, blah blah blah -->
</form>
PHP(validate.php)
class Validate extends CI_Controller {
// accessible in URL
public function register()
{
if($this->check_credentials())
{
// success message
}
else
{
// error message
}
}
// accessible only in this class/controller
private function verify_info()
{
// logic to check if info is good
// work in CSRF token protection
// return true or false
}
}
答案 1 :(得分:1)
HTTP Referrer标头包含客户端想要包含的内容。
您可以将(服务器端)会话的时间戳存储到记录客户端已加载帐户详细信息表单,然后在收到帐户时验证此记录 。如果用户访问其他页面以及它将保持有效多长时间,是否清除此记录取决于您。
没有一个简单的解决方案,因为您验证客户端的能力有限。您必须平衡您在安全方面投入的精力与您寻求保护的数据(和信任)的价值以及您所面临的程度。