Tự Động Logout Trên Wordpress - MTD SEC

MTD SEC

Chia Sẻ Để Thành Công

Home Top Ad

Post Top Ad

Thứ Hai, 11 tháng 6, 2018

Tự Động Logout Trên Wordpress

Bạn đang muốn nâng cao bảo mật cho website thì một trong những tính năng là lưu đăng nhập lần sau dựa trên cookie trình duyệt sẽ làm mất an toàn website do có thể người dùng bị các virus chiếm đoạt cookie của trang web. Bạn hoàn toàn có thể set thời gian sau bao lâu không thao tác thì tiến hành logout tài khoản đó để đảm bảo cho dù hacker có cookie của bạn cũng không thể làm được gì cả nếu quá thời gian trên. Như vậy website của bạn sẽ được nâng cấp bảo mật ên tốt hơn.

Đầu tiển các bạn mở file functions.php của child themes lên và cho đoạn code sau vào phía cuối file hoặc bạn có thể tạo mới một child themes với nội dung file functions.php như sau
<?php
/**
* Auto logout ajax.
*/
add_action( 'wp_ajax_auto_logout', 'auto_logout' );
add_action( 'wp_ajax_nopriv_auto_logout', 'auto_logout' );
function auto_logout(){
wp_verify_nonce($_POST['security', 'secure-my-logout');
echo "Logged Out.";
if($_POST['time']){
wp_clear_auth_cookie();
die();
}
die();
}

Sau đó chúng ta cần tạo một file auto-logout.js và bạn đặt nó ngang hàng với file functions.php của theme với nội dung sau đây.
"use strict";
jQuery(document).ready(function(){
if( jQuery('body').hasClass('logged-in') ){
auto_logout.init();
}
});

var auto_logout = {
timeoutID : 0,

init : function()
{
document.addEventListener("mousemove", auto_logout.resetTimer, false);
document.addEventListener("mousedown", auto_logout.resetTimer, false);
document.addEventListener("keypress", auto_logout.resetTimer, false);
document.addEventListener("DOMMouseScroll", auto_logout.resetTimer, false);
document.addEventListener("mousewheel", auto_logout.resetTimer, false);
document.addEventListener("touchmove", auto_logout.resetTimer, false);
document.addEventListener("MSPointerMove", auto_logout.resetTimer, false);
},

startTimer : function()
{
auto_logout.timeoutID = window.setTimeoutauto_logout.goInactive, 180000); // Three minutes logout
},

resetTimer : function()
{
window.clearTimeout(auto_logout.timeoutID);
auto_logout.goActive();
},

endTimmer : function()
{
document.removeEventListener("mousemove", auto_logout.resetTimer, false);
document.removeEventListener("mousedown", auto_logout.resetTimer, false);
document.removeEventListener("keypress", auto_logout.resetTimer, false);
document.removeEventListener("DOMMouseScroll", auto_logout.resetTimer, false);
document.removeEventListener("mousewheel", auto_logout.resetTimer, false);
document.removeEventListener("touchmove", auto_logout.resetTimer, false);
document.removeEventListener("MSPointerMove", auto_logout.resetTimer, false);
},

goInactive : function()
{
var data = {
'action': 'auto_logout',
'time': true,
'ajaxsecurity': ajax_object.logout_nonce,
};
jQuery.post(ajax_object.ajax_url, data, function(response) {
auto_logout.endTimmer();
alert('You have been logged out due to inactivity.');
window.location.href = "/login/";
});
},

goActive : function()
{
auto_logout.startTimer();
},
};

 

Chú ý đoạn code sau:
auto_logout.timeoutID = window.setTimeoutauto_logout.goInactive, 180000); // Three minutes logout

Bạn thay 180000 thành số phút mà bạn muốn sau bao lâu không thao tác nó sẽ tự logout

Sau đó bạn thêm đoạn code sau vào cuối file functions.php của theme chính đang chạy.
// Action to enqueue style/scripts.
add_action( 'wp_enqueue_scripts', 'prefix_enqueue_scripts' );
function prefix_enqueue_scripts(){
wp_enqueue_script( 'auto-logout', 'path to your auto-logout.js file', array('jquery'), '', true);

// in JavaScript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value
wp_localize_script( 'auto-logout', 'ajax_object', array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
'security' => wp_create_nonce('secure-my-logout')
);
}

Chú ý đoạn code sau:
wp_enqueue_script( 'auto-logout', 'path to your auto-logout.js file', array('jquery'), '', true);

Thay đoạn path to your auto-logout.js file thành đường dẫn tới file auto-logout.js của bạn.

Như vậy bạn đã cấu hình thành công như mình đang cấu hình ờ đây thì sau 180000 giây hệ thống sẽ tự động logout tài khoản. chúc các ban thành công nếu lỗi hãy để lại bình luận mình sẽ giúp!

Không có nhận xét nào:

Đăng nhận xét

Post Top Ad