用户【hù】中心统一管理的帐【zhàng】号,能够【gòu】实现统一【yī】的注册和【hé】登录,当然【rán】了解子凡我【wǒ】习惯的都【dōu】知道我们泪雪下【xià】面的【de】网站基本都是基【jī】于 WordPress 构建,当然也有遇到一些攻击和【hé】扫描【miáo】,不论【lùn】是研究还是【shì】恶意行为【wéi】,作为站方有则有【yǒu】必要不断【duàn】的提升提高安全性【xìng】能。
就在【zài】前些天,有人【rén】利用 WordPress 的登【dēng】录页面 wp-login.php 直接【jiē】尝【cháng】试【shì】以【yǐ】找回【huí】密码,并且意图【tú】直接【jiē】通过 wp-login.php 页面绕过我们统一的用户接口登录网站后台,所以子凡也研究了一番,虽【suī】然我们在之前的开发【fā】时对登【dēng】录地址做【zuò】了跳转,但是由于 WordPress 的 wp-login.php 页面属于静态页面也是【shì】可【kě】以【yǐ】直接【jiē】访问的,所以之前的跳【tiào】转并不完【wán】善,那么今天就把相关的代码片段分享【xiǎng】一下,可以帮助到【dào】一些利用 WordPress 开发【fā】的站群,或者【zhě】是重置了 WordPress 登【dēng】录页【yè】面,或者新开发有 WordPress 登录【lù】页【yè】面【miàn】及功能的网站,以【yǐ】此【cǐ】来达到禁【jìn】止 wp-login.php 页面的效【xiào】果,从而提升 WordPress 登录及注册的【de】安全性。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// wp-login.php 页面设置为 404 错误 add_action('init','fanly_custom_login'); function fanly_custom_login(){ global $pagenow; if( 'wp-login.php' == $pagenow ) { global $wp_query; $wp_query->set_404(); status_header(404); nocache_headers(); include( get_query_template( '404' ) );//调用当前主题 404.php 模板页面 die(); } } |
代码很【hěn】简【jiǎn】单,放【fàng】置到你网站当前主题 functions.php 文件中即可【kě】,代码是利【lì】用判断当前页面是否为【wéi】 wp-login.php 来进行判断,如果是 wp-login.php 页面【miàn】,则将 HTTP 状【zhuàng】态码设置为【wéi】 404,然后在【zài】载入 WordPress 主题的 404 页面【miàn】,以上代码【mǎ】需要当前【qián】主题【tí】目录有 404.php 模板【bǎn】页面,当然也可以根据自己需【xū】求修改。
那么如果不载入 404 页面,还可以设置跳转,代码如下:
1 2 3 4 5 6 7 8 9 |
// wp-login.php 页面跳转到首页 add_action('init','fanly_custom_login'); function fanly_custom_login(){ global $pagenow; if( 'wp-login.php' == $pagenow ) { wp_redirect(home_url());//跳转到首页 die(); } } |
以上【shàng】两段代码功能不一样,不能共同使用,根【gēn】据自己【jǐ】需【xū】要选择其中之一【yī】使【shǐ】用就行啦。
版权所有:深圳市网商在线科技有限公司