#php #apache #.htaccess #codeigniter-3 #mod-security
#php #apache #.htaccess #codeigniter-3 #мод-безопасность
Вопрос:
Я работаю над небольшим проектом, в котором пользователи могут входить в систему, используя свои собственные регистрационные данные. У каждого пользователя разные имя пользователя и пароль. У меня есть веб-страница, которая находится на CodeIgniter. Я использую приведенный ниже код для входа пользователя.
Контроллер
public function index()
{
$this->checkLogin();
}
public function checkLogin(){
if(!$this->session->userdata('login_session'))
{
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$this->form_validation->set_rules('crmid', 'CRM id', 'trim|required|min_length[6]');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('login');
}
else
{
$crmid = strtoupper($this->input->post('crmid'));
$password = $this->input->post('password');
$result=$this->Access_model->check_password($crmid,$password);//varifying password
if ($result) {
//creating session
$login_emp_session = array('id' => $result->id,'crmid' =>$result->crm_id,'firstname' => $result->firstname,'lastname' => $result->lastname,'access_role' => $result->access_role,'password_change_status' => $result->password_change_status);
$this->session->set_userdata('login_session',$login_emp_session);//set the session
if ($result->password_change_status == 0) {
redirect("Access_control/changepassword");//calling change password
}
else{
redirect("Dashboard_control/dashboard");//calling dashboard
}
}
else{
$this->session->set_flashdata('invalid_password', 'Invalid username and password');
$this->load->view('login');
}
}
}
else
{
if ($this->session->userdata['login_session']['password_change_status'] == 0) {
$this->session->sess_destroy();
$this->load->view('login');
}
else{
redirect("Dashboard_control/dashboard");//calling employee register
}
}
}
Если в систему входит один пользователь или 2-3 пользователя, тогда все работает отлично, но пользователи регистрируются в более чем 10 системах с общедоступным IP (который является общим IP), и через 10-25 минут я получаю сообщение This site can't be reached
.
Поэтому я связался с командой Hostgator, они сказали, что проблем с вашим IP-адресом нет, пожалуйста, проверьте свой код еще раз. Существует некоторая проблема с ModSecurity, и мы не можем ее включить.
ModSecurity: Access denied with code 409 (phase 1)
Правильно ли мой логин в коде?
не могли бы вы помочь мне в этом вопросе?
Это журналы, которые я получил от hostgator.
[Tue Apr 09 17:12:51.564509 2019] [:error] [pid 947073:tid 140357593020160] [client *.*.*.*:0] [client *.*.*.*] ModSecurity: Warning. Operator GE matched 5 at TX:inbound_anomaly_score. [file "/etc/apache2/conf.d/modsec_vendor_configs/OWASP3/rules/RESPONSE-980-CORRELATION.conf"] [line "37"] [id "980130"] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 10 - SQLI=0,XSS=0,RFI=0,LFI=10,RCE=0,PHPI=0,HTTP=0,SESS=0): Path Traversal Attack (/../)"] [tag "event-correlation"] [hostname "abc.mydomain.com"] [uri "/errors/404_Forbidden_php.php"] [unique_id "XKzSkDANRUc4aj6DxXxtsQAAAmk"], referer: http://abc.mydomain.com/Access_control/index
Комментарии:
1. кто-нибудь может мне помочь с этой проблемой? или есть идеи?
2. Похоже, что в Hostgator установлено ограничение скорости в ModSecurity. Они должны предоставить вам более подробную информацию об ошибке ModSecurity и о том, как ее устранить.
3. @BarryPollard, они говорят мне изменить код. Я не понимаю, в чем проблема с моим кодом.
4. Они ошибаются. Или, по крайней мере, я не понимаю, почему они были бы правы, пока они не предоставят больше информации.
5. @BarryPollard, я обновил журналы в вопросе.