欢迎光临
我们一直在努力
共 25 篇文章

标签:wp 第2页

WordPress快速ssl全局设置及常见故障解决方法-

WordPress快速ssl全局设置及常见故障解决方法

前言 现在SSL越来越普及了。但是很多朋友不知道如何设置、今天学派吧-给新朋友演示下。 一、系统文件修改 二、后台文件修改 三、安装插件 首先按照自己的项目运行服务器把证书安装好,干货君以腾讯云为例:证书安装指引 – SSL 证书 – 文档平台 – 腾讯云文档平台 – 腾讯云。 干货君使用nginx反向代理,apache作为项目运行服务器为例,修改nginx/conf文件夹下面的nginx.conf(将下方代码块添加到文件中或把文件中443代码块按此方式设置)。 server { listen 443; server_name www.nrgh.org; #填写绑定证书的域名 ssl on; ssl_certificate 1_www.nrgh.org_bundle.crt; ssl_certificate_key 2_www.nrgh.org.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置 ssl_prefer_server_ciphers on; location / { #项目路径,或反向代理的代码块 proxy_pass http://nrgh; } } 上方搞定在nginx.conf中加入下面这个代码块,你要负载均衡(集群使用)也是在这个代码块中搞 upstream www{ #下方写要代理的ip和端口号,下面ip是乱写的,真实的已隐去 server 111.111.205.11:56; } server { listen 80; server_name http://www.nrgh.org if ($scheme = http ) { #http请求转换为https return 301 https://$server_name$request_uri; } #即所有请求都到这里去找分配 location / { #全局实现80进来的请求,重定向为https了 proxy_pass http://www; #rewrite ^/(.*) https://$server_name/$1 permanent; } } 上面都配置之后,运行 nginx -t 并重启nginx试试效果 接下来说下会出现的问题: 1、上面都搞定之后,wordpress网站可能出现css和js还是走http请求,文章链接走https请求,这时候需要你把wordpress的媒体文件绝对路径替换相对路径,方法如下: 2、wordpress/wp-admin 后台进不去,登录无反应; 3、百度找了很多解决方法,却依然没有解决,甚至搞的连网站都打不开了; 4、等等。。。 一、系统文件修改 路径:网站根目录\wp-includes\functions.php 找到代码 require( ABSPATH . WPINC . ‘/option.php’ ); 在下方添加: add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2); function agnostic_script_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); } add_filter('style_loader_src', 'agnostic_style_loader_src',...

wordpress启用https301重定向 WP跳转-学派吧-

wordpress启用https301重定向 WP跳转-学派吧

前言 谷歌浏览器一直在推行 https,而今年更新通知 7 月份会将 http 标记为不安全,于是下定决心学派吧启用 https。经过一番折腾,最后终于改造成功,但是最后找了很多 http301 重定向到 https 的规则,很多都只能定向首页,而不能全站 301。最后才找到一个可以用的,分享给大家 htaccess规则 如果是没有htaccess规则,可以直接用以下规则 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> 如果已有如下默认规则, <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # BEGIN WordPress RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # EDN WordPress 注:规则必须加载 # BEGIN WordPress和# EDN WordPress之外 301状态码检测 可以通过站长工具(http://tool.chinaz.com/pagestatus/)进行状态码检测 检测主页和内页同时返回正确的301状态码,可以到百度站长平台进行https验证 验证后很快快照就会更新成https 还有很多其他办法可以实现。也有插件也可以。 欢迎来到我们学派吧站长群 右上角 一起讨论

wordpress删除文章时自动删除文章图片-WP教程-学派吧

前言 很多朋友wordpress删除文章时候文章的图片和略缩图源文件并不会从服务器删除,对于强迫症来说这太难受了,去网上搜索了一下,有相关的教程,下面的代码放到主题的functions.php文件中就可以 /* 删除文章时删除图片附件 */ function delete_post_and_attachments($post_ID) { global $wpdb; //删除特色图片 $thumbnails = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); foreach ( $thumbnails as $thumbnail ) { wp_delete_attachment( $thumbnail->meta_value, true ); } //删除图片附件 $attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'" ); foreach ( $attachments as $attachment ) { wp_delete_attachment( $attachment->ID, true ); } $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); } add_action('before_delete_post', 'delete_post_and_attachments'); /* 删除文章时删除图片附件over */ ps:这些小功能是我在建站过程中的一些需求,所以记录下来,方便下次使用 欢迎各位网络朋友前来投稿,把喜欢碰到的问题解决方案记录下来。以便下次使用。

WordPress 使用 wp_count_posts() 函数快速获取文章数量-wp教程-

WordPress 使用 wp_count_posts() 函数快速获取文章数量-wp教程

还记得之前想要获取 WordPress 站点的所有文章总数统计网上的教程,以及子凡在某些地方的使用也都是直接使用 SQL 语句直接查询数据来做总数统计,现在相信还真的是费时费力,原因就是不知道 WordPress 还有 wp_count_posts()这样一个函数,具体是哪个版本出来就懒得去看了,反正随时都保持 WordPress 最新版。 其实在很多的 WordPress 主题上都会有一个统计或者文章归档的页面,就需要统计一些 WordPress 站点上已经发布多少文章了,以此来展示自己的站点或者给自己一个统计,当然我们在开发某些特别的功能或者逻辑计算时也可能会用到,子凡昨天就开发一个插件的时候就多次用到了,不想再去写 SQL 来统计,费时费力并且 WordPress 本身就有的功能为什么就不好好利用呢,果断就想起了 wp_count_posts 函数。 wp_count_posts 函数是在 WordPress 中用来统计文章数量的函数,可以统计的类型有文章(post)和页面(page)。并且能够直接统计出文章各个不同状态的数据,使用起来非常的便捷,两行代码即可搞定。 //获取文章数量 $postcount = wp_count_posts(); //获取页面数量 $pagecount = wp_count_posts('page'); 默认是获取的 post 文章类型的,当然如果是自定义类型应该也是可以支持的,这个子凡目前没有测试,不过相信 WordPress 是绝对考虑到了兼容性的,值得注意的是,子凡上面说过了是两行代码,所以上面的例子并不能直接输出,因为 wp_count_posts 函数返回的是一个对象数据,如下。 // WordPress wp_count_posts 函数返回值 stdClass Object ( [publish] => 11 //已发布 [future] => 0 //定时发布 [draft] => 0 //草稿 [pending] => 0 //待审 [private] => 0 //私有 [trash] => 0 //垃圾箱 [auto-draft] => 34 //自动草稿 [inherit] => 0 //修订版本 [request-pending] => 0 [request-confirmed] => 0 [request-failed] => 0 [request-completed] => 0 ) 所以,获取已发布状态文章的完整统计代码如下: //WordPress 已发布文章数量 $count_posts = wp_count_posts(); $publish_posts = $count_posts->publish; 其它的就举一反三,相信也都能看得懂了,子凡就不再过多的赘述。最后在补充一点,有时候我们可能喜欢代码的简单性,所以在写法上面就比较大胆,没有怎么考虑兼容性,一行代码就能搞定,所以在不考虑兼容性的情况下还有以下的一种写法: //WordPress 已发布文章数量,不兼容 PHP5.4 以前 $publish_posts = wp_count_posts()->publish; 子凡比较喜欢用吧,不过使用这种写法请一定保证你的 PHP 版本在 5.4 以上即可正常运行。

WordPress搭建多域名多站点教程-WP教程

WordPress 3.0以上的版本支持直接开启多站点模式,这样一来,你可以在一个后台切换多个站点进行管理。多站点模式可以使用多个不同的域名绑定,避免了在同一个服务器安装多个WordPress的尴尬,管理多个网站非常方便,下面就介绍一下安装和启用多站点的操作方法。 开启网络配置 在网站根目录下的 wp-config.php 添加: define('WP_ALLOW_MULTISITE', true);    配置多站点模式   刷新网站后台,访问 工具 > 配置网络,根据自己的需要选择“子域名”或者“子目录”模式,然后点击“安装”,如果需要绑定域名,可以选择“子域名”模式。之后系统会生成两段代码,一段添加到网站根目录下的 wp-config.php 中,一段添加到网站根目录下的 .htaccess 文件中。 添加网站域名   服务器Apache设置为泛域名解析,然后在 我的站点 – 管理网络 – 站点 里,添加新的站点,选一个子域名添加站点。   添加好了以后,在子域名上点编辑,把里面的“站点地址(URL)”修改为指定的独立域名,然后将该独立域名DNS绑定过来,即可完成配置。 设置COOKIE 在网站根目录下的 wp-config.php 添加: define( 'COOKIE_DOMAIN', '' );   这步操作很重要,如果不设置的话,之后登录网站后台会提示“错误:Cookies被阻止或者您的浏览器不支持。要使用WordPress,您必须启用Cookies。”   之后,用户就可以用一套WordPress程序来管理多个不同的站点,可以同步调整主题和插件,这些站点可以是完全不同的域名,管理起来非常方便。 如果有不懂的、欢迎加入我们学派吧。一起学习交流。右上角站长群

WordPress禁用自动保存草稿去除文章修订功能-wp教程-

WordPress禁用自动保存草稿去除文章修订功能-wp教程

有需要服务器方面的需求和咨询,可以联系博主 QQ 7271895 禁用文章修订历史版本 禁用自动保存功能 禁用自动草稿功能 下面的方法需要修改源文件所以在打开每一个文件之前,记得一定要先做好备份! 禁用文章修订历史版本 1.打开 wp-config.php 文件 2.在 $table_prefix = \’wp_\’; 前面添加下面的两行代码: define(\'WP_POST_REVISIONS\', false);//禁用历史修订版本 define(\'AUTOSAVE_INTERVAL\', false);//自动保存时间设置为一天 如下: 禁用自动保存功能 1.打开 wp-admin/post.php 文件,搜索 if ( \’attachment\’ !== $post_type ) ,找到以下代码 150-151行 if ( \'attachment\' !== $post_type ) wp_enqueue_script(\'autosave\'); 将这两行用注释符号//注释即可!如下: 2.打开 wp-admin/post-new.php 文件,搜索 wp_enqueue_script( \’autosave\’ ); (69行),在代码前面加//将其注释或删除 禁用自动草稿功能 打开 wp-adminincludespost.php 文件,搜索 if ( $create_in_db ) { 找到以下代码 597行 $post_id = wp_insert_post( array( \'post_title\' => __( \'Auto Draft\' ), \'post_type\' => $post_type, \'post_status\' => \'auto-draft\' ) ); $post = get_post( $post_id ); 修改为: global $current_user,$wpdb; $post = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_status = \'auto-draft\' AND post_type = \'$post_type\' AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1" ); if (!($post) ) { $post_id = wp_insert_post( array( \'post_title\'...

WordPress内核中一个任意文件删除漏洞,带来的危害,WP安全-

WordPress内核中一个任意文件删除漏洞,带来的危害,WP安全

有运维或服务器方面的需求,可以联系博主 QQ 7271895 简介 受影响的版本 攻击带来的影响 技术细节 临时修复程序 时间线 总结 导语:WordPress是网络上最受欢迎的CMS。在这篇文章中,我们将讲述在WordPress内核中引入一个经认证的任意文件删除漏洞,这个漏洞可能会导致攻击者执行任意代码。 简介 WordPress是目前网络上最受欢迎的CMS。根据w3tech的资料显示,约有30%的网站都在使用它1。这种广泛的采用,也使其成为了网络犯罪分子非常感兴趣的一个目标。在这篇文章中,我们将讲述在WordPress内核中引入一个经认证的任意文件删除漏洞,这个漏洞可能会导致攻击者执行任意代码。在7个月前,我们向WordPress安全团队报告了这个漏洞,但至今依然没有得到修复。由于经过了这么长时间,WordPress官方都没有发布任何补丁或具体修复计划,所以我们决定公开这个事件。 受影响的版本 截止到本篇文章发送时,还没有补丁可防止此漏洞的使用。任何WordPress版本(包括当前的4.9.6版本),都容易受到该漏洞的影响。 如果要利用该漏洞,攻击者需要事先获得编辑和删除媒体文件的权限。因此,该漏洞可以通过对与作者权限相同的用户来提升权限,或者通过其他漏洞的错误配置来利用。 攻击带来的影响 利用此漏洞,使攻击者能够删除WordPress安装的任何文件(+ PHP服务器上的任何其他文件,PHP进程用户具有适当的删除权限)。除了删除整个WordPress安装文件对系统的影响(如果没有当前备份可用,会导致灾难性后果),攻击者可以利用任意文件删除功能绕过一些安全措施,并在Web服务器上执行任意代码。更确切地说,可以删除以下文件: .htaccess:一般来说,删除此文件不会有不安全的影响。但是,在某些情况下,.htaccess文件包含与安全相关的约束(例如,对某些文件夹的访问限制)。因此,删除此文件将会禁用这些安全限制。 index.php文件:通常情况下,将空的index.php文件放置到目录中,以防止Web服务器无法执行的情况下的目录列表。如果删除这些文件则将为攻击者提供一份列表,列出受此措施保护的目录中的所有文件。 wp-config.php:删除这个WordPress安装文件,会在下次访问该网站时触发WordPress安装过程。这是因为wp-config.php包含数据库凭证,如果没有它,WordPress的将认为它尚未安装。攻击者可以删除该文件,使用管理员帐户选择的凭据进行安装过程,最后在服务器上执行任意代码。 如需观看视频,请点击此处查看原文https://blog.ripstech.com/2018/wordpress-file-delete-to-code-execution/ 技术细节 当用户输入传递文件删除功能时,会发生任意文件删除漏洞。在PHP中,当unlink()调用该函数,并且用户输入可能会影响部分或整个参数$filename(表示要删除的文件的路径)时,会发生这种情况,而WordPress不会进行适当的处理。 在该wp-includes/post.php文件中找到了在WordPress Core中使这个漏洞成为可能的代码部分: WordPress内核中一个任意文件删除漏洞,可导致攻击者执行任意代码 在wp_delete_attachement()上面显示的功能中,$meta[‘thumb’]呼叫中使用的内容unlink()未经过任何处理。这段代码的目的是在删除图像的同时删除图像的缩略图。在WordPress中通过媒体管理器上传的图像被表示为附属类型的帖子。该值$meta[‘thumb’]从数据库中检索,并保存为表示图像的文章的自定义字段2。因此,在数据库检索和关键函数调用之间使用unlink(),表示缩略图文件名的值不经过任何清理或检查。如果该值在保存到数据库之前也没有经过任何安全措施,我们将在下一个代码列表中看到情况,我们有一个二阶任意文件删除漏洞。 WordPress内核中一个任意文件删除漏洞,可导致攻击者执行任意代码 此代码片段/wp-admin/post.php代表了附件中属于附件的缩略图的文件名如何保存到数据库中。在从保存在$_POST[‘thumb’]数据库中的用户输入中检索和保存到数据库wp_update_attachment_metadata()之间没有任何安全措施,以确保该值代表正在编辑的附件的缩略图。$_POST[‘thumb’]对于任何文件的路径,这个值可以保存到WordPress上传目录的相对路径中,当附件被删除时,该文件将被删除,如第一列表中所示。 临时修复程序 在编写此篇文章时,此漏洞在WordPress内核中仍未被修复。正因为这样,我们开发了一个临时修复程序。通过将修复程序添加到functions.php当前活动的主题/子主题文件中,可以将修复程序集成到现有的WordPress安装中。 WordPress内核中一个任意文件删除漏洞,可导致攻击者执行任意代码 所有提供的修复程序都会挂接到wp_update_attachement_metadata()调用中,并确保为元值提供的数据thumb不包含任何使路径成为可能的部分。因此,不能删除与安全相关的任何文件。 我们所提供的修复方案属于临时修复,以防止攻击。我们无法监督WordPress插件的所有可能的向后兼容性问题,因此建议您谨慎的对WordPress文件进行任何修改。 时间线 总结 在这文章中,我们介绍了WordPress内核中引入了一个任意文件删除漏洞,它允许任何具有作者权限的用户完全接管WordPress网站,并在服务器上执行任意代码。该漏洞去年已报告给WordPress安全团队,但在编写本文时仍然没有作任何修复。 为了提高对此漏洞的认识,我们决定发布一些细节和修复程序。使用我们的安全分析解决方案可以轻松发现漏洞,我们确信这个问题已经被许多研究人员所了解。尽管用户帐户的需求阻止了任意WordPress站点的大规模开发,但共享多个用户帐户的WordPress站点应该应用此修复程序。 如果有不懂的、欢迎加入我们学派吧。一起学习交流。右上角站长群

更好的服务器推荐选择

本站主要用于阿里云、腾讯云、华为云服务器活动的推荐及优惠购买方式、并搜集服务器运维的日常解决方案!

联系我们联系我们

登录

找回密码

注册