隔壁小孩都要知道的Drupal配置

用Drupal搭建个人博客网站 一. 安装 1 二、.设置博客 5 a.汉化 5 b.设置主题 10 c.安装可视化编辑器CKEditor 11 d.安装CKFinder 13 e.添加分类和独立页 15 f.设置菜单 16 g.添加字段类型(分类) 19 h.设置区块 21 i.SEO设置 23 j.其它的设置 24 立即下载

i春秋作家:Arizona

原文来自:隔壁小孩都要知道的Drupal配置

隔壁小孩都要知道的Drupal配置


Drupal是一个开源的PHP内容管理系统,具有相当复杂的架构。它还具有强大的安全模型。感谢开发人员在社区的贡献和维护,所以有很多详细的文档和有关加强Drupal网站安全配置的方法。

切记,Drupal是运行网站所需的一部分。为了保护整个系统免受黑客攻击,我们需 要处理整套系统。它包括一些常见的服务器设置,Web服务器的配置,PHP和数据库。此外,服务器上的任何其他服务都需要正确配置。

本文重点讨论上述关键点。它提供了一些提示和关键点,可以帮助服务器和网站管理员审核整个系统的安全性。我们应该明白,打造一个绝对安全的系统是不可能的,但如果你坚持一些原则,它将有助于你的系统安全。

安全原则

让我们从常见的安全守则开始。它们中的大多数不仅适用于Drupal开发并且支持Drupal网站运行基础设施的相关安全性,而且还适用于许多其他情况:

  • 使用由一个拥有大量用户群体的社区开发的解决方案。它可以很好地维护开源库,流行的Linux发行版等等。始终检查下载代码的完整性。

  • 遵循最小原则,尽量不使用任何其他服务。如果你真的需要它,请安装新软件,卸载所有不需要的服务。

  • 避免编写自定义代码。在开始之前,请仔细考虑是否可以避免这种情况。与Drupal开发相关的真实情况是在编写自定义模块之前在drupal.org上搜索现成的解决方案。

  • 默认拒绝访问。只有在必要时,才应授予相关的访问权限。

  • 添加具有所需权限的角色。每个角色都必须有详细记录。这样,应该很容易支持和扩展整个权限框架。

  • 不要使用root权限。在基于Linux的操作系统上,仅在需要时使用root访问权限,并通过sudo执行此操作。换句话说,你不应该以root用户身份登录和运行。

  • 定期对系统进行安全检查和维护。你应仔细分析所有可疑情况并对其作出分析。

  • 备份!你必须始终能够将系统还原为以前的任何状态。此外,你需要确保系统进行有效可以用的备份。

  • 在服务器进行适当的安全维护之前,请勿暴露在公网上。

这些原则可以应用于任何系统和服务,无论它使用何种软件和硬件。我们进一步讨论更具体的关键点。

重要的安全维护对象:

除了运行网站的Drupal之外,还需要配置PHP,Web服务器和数据库。你可能还需要安装一些服务插件来扩展搜索功能,使用缓存等。  

如你所见,有很多事情需要正确配置和定期维护。基于上述的情况,我们可以在一定程度上区分以下需要确保安全性的服务:

  • 服务器(常用的配置)

  • Web服务器

  • PHP

  • 数据库

  • Drupal

服务器(常用设置)

互联网上可用的任何服务的安全性始于服务器的基本配置。对于基于Linux的服务器,它可以使用以下的配置方法:

  • 改变远程登陆的配置

  • 使用iptables设置防火墙

    改变远程登陆的配置

通过更改登录到服务器的配置,。主要目标是使这个过程与一般默认的过程有所区别。

例如,任何Linux的系统都有一个名为root的超级用户。攻击者可以通过ssh等爆破root的默认密码。但是,如果服务器管理员关闭root登录,则此类尝试将失败。我们可以创建一个新用户,而不是root用户,然后授予他必要的权限。

大多数这个的更改都与ssh设置有关。它们通常位于/etc/ssh/ sshd_config文件中。相关配置:

Port 2345
Protocol 2
PermitRootLogin no
PasswordAuthentication no
UseDNS no
AllowUsers user

它允许使用有效的用户名通过ssh连接到服务器使用2345端口(非默认,默认22)。它还会禁用root登录和密码身份验证。

禁用密码验证是提高整个系统安全性的重要步骤。无密码身份验证更安全。要登录服务器,你需要在本地计算机上生成ssh密钥,然后将公钥复制到服务器。安全性更高。

使用iptables设置防火墙

iptables是Linux系统的默认防火墙。它可用于管理与指定端口的连接。如果我们想将网站保留在服务器上,除了ssh端口之外,还需要打开http和/或https端口。

默认情况下,操作系统上没有建立规则。敲sudo iptables -L命令(Ubuntu)将返回以下内容:

  Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

这意味着服务器接受来自任何端口上任何人的任何内容(策略默认ACCEPT)。我们可以只打开必要的端口并关闭其他没必要的端口。

sudo iptables -A INPUT -p tcp --dport 2345 -j ACCEPT 
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

这些命令是 接受2345,80和443端口的连接。尽管如此,我们仍然没有其他端口的其他限制。因此,你需要在最后添加一条规则,拒绝所有不需要的数据包。

  sudo iptables -A INPUT -j DROP

就这样。应该记住,上面的配置可能会你使用不同的系统而有很大差异。这里的主要目标只是对基本原则的解释。更改网络配置时要小心!!!有时,你一不小心 它就拒绝任何连接。比如你不小心drop了你的ssh端口,2333。

Web服务器

设置Web服务器的一些一般原则。使用这些规则对于你的网站运行非常重要。通过服务器的漏洞,攻击者可以任意执行文件,上传恶意脚本并以某种骚操作运行这些脚本。

能够访问运行的网站文件

主要的原则就是 网站文件应该由非root用户运行,并且不应该由Web服务器写入(敲黑板,划重点!)。在一些情况下,Drupal目录可供Web服务器用户写入,有关保护文件权限和所有权的详细信息,请看本文末尾的“相关链接”。

限制对Web服务器的某些功能的访问

有时,限制在Web服务器对网站的一些功能的访问可能是有用的。例如,在你拥有演示网站或没有注册功能的网站的情况下。你可以限制/user和/admin/ *。对于Apache Web服务器,可以使用mod_authz_host和mod_rewrite模块完成。切记,http身份验证不是一种安全的方法。因此,所描述的方法在特定情况下更适用。

删除不使用的Web服务器插件

服务器上的所有其他服务都存在潜在的安全风险。因此,你应该遵循最小化原则。如果你不需要什么,只需将其删除即可。

这同样适用于Web服务器。Apache和Nginx Web服务器有许多额外的插件,仔细检查已启用的扩展名列表,并删除所有未使用的扩展名。

使用HTTPS

使用HTTPS协议可以使网站和私人用户数据的访问更加安全。如今,当一些在线商店不对他们的支付交易使用加密,这是绝对不对的。而且,Google已经将HTTPS设置为排名指标。这意味着不使用HTTPS协议但还是能运行的网站,一些重要信息(信用卡,支付交易等)会对搜索排名产生负面影响。

理想情况是,如果你为与用户进行交互的所有网站加密。例如说登录和注册。用户输入密码。即使这些密码在所有浏览器中看起来都不可见(如**),它们也会以未加密的形式通过网络传递。因此,攻击者可以通过中间人方式等轻松拦截输入的数据。用户通常都是使用常用密码。这意味着也可能会影响你在对别的网站的账号。

HTTP认证

应该清楚在什么情况下可以使用HTTP身份验证。大多数情况下,你需要它来保护对网站的缓存并禁用爬虫对该网站的索引。但是,HTTP身份验证本质上是不安全的。它不使用任何加密算法。因此,浏览器和网站之间的流量不会被加密,攻击者只需复制可以用的HTTP头并将数据包其发送到Web服务器即可访问网站。

此外,强烈建议将htpasswd文件保留在文档根目录之外。设置此文件的只读权限(440)。

PHP

PHP与服务器的其他服务一样可能包含漏洞。这在很大程度上取决于PHP本身的设置以及当前使用的PHP版本。当然,你始终需要检查所有可用的更新并保持PHP更新。但是,在某些情况下,这可能非常困难甚至是不可能的。

一般来说,优化服务器上PHP安全性的所有工作可以分为三个部分:

  • 定期更新PHP版本
  • 避免使用不安全的代码,功能等
  • 优化PHP设置

    定期更新PHP版本

    这是比较容易理解的事情,但正如我所提到的,在某些情况下,更新可能非常困难甚至是不可能的。当你的应用程序中有很多祖传代码(它在新的PHP版本中不起作用)并且当前的业务不允许你花时间更新这段代码时就会主要,因为它是很耗费时间的操作。在这种情况下,你可以尝试使用下面的一些建议。

    避免使用不安全的代码

    编写安全代码是服务器安全的重要一步。你应该花一些时间定期查看你所有自定义代码。此外,没有人可以保证第三方库不包含任何漏洞。正如我所提到的,即使PHP本身也存在安全性问题(使用不安全的函数,缓冲区溢出等)。

    为了解决这些问题,有一个很好的玩意叫做Suhosin,它可以帮助你摆脱许多安全问题。Suhosin旨在保护服务器和用户免受PHP和PHP核心中已知和未知的缺陷的影响。它由两部分组成。第一部分是PHP核心的补丁,它提供了一些针对缓冲区溢出或格式化字符串漏洞的低级保护。第二部分是PHP扩展,它实现了一些额外的保护。

    Suhosin是一个非常强大的工具,可以保护你的服务器免受许多漏洞的侵害。蛋疼的是,它不适用于PHP7.事实上,Suhosin7 正在开发,但还没有完成。作者不建议在生产服务器上使用Suhosin7。

    优化PHP设置

    为优化PHP安全配置,我们可以采取的两个最简单的步骤是禁用未使用的模块,并最大限度地减少用户可以获得的有关当前PHP安装的信息。

    要查看所有已编译的PHP模块,请运行以下命令:

    $ php -m

    建议仅使用必要的模块来提高安全性。仔细检查整个列表哪些是你不需要的模块。删掉吧。

    保护PHP免受黑客攻击还要隐藏有关系统的信息。看看php.ini文件中的这个配置:

    expose_php = Off

    确保此参数配置。否则,PHP将发送版本号到X-Powered-Byhttp头中的。

    同样适用于网站上的PHP报错。他们可以提供有关你的服务器的一些额外信息(Web服务器版本,目录结构等)。因此,强烈建议在生产服务器上禁用此功能。

display_errors = Off 
log_errors = On 
error_log = /var/log/httpd/php_scripts_error.log

上面的设置允许你关闭显示网站发生的报错。此外,它们还会将错误记录到指定的日志中。

这些是初步步骤,可以帮助你提高在服务器上使用PHP的安全性,即使没有对系统进行任何重大修改。现在让我们谈谈你可以添加到PHP配置(php.ini文件)的一些特定配置:

file_uploads = Off #禁用文件上传

但是如果需要文件上传的功能,最好限制文件大小。

file_uploads = on 
upload_max_filesize = 1M

2.控制系统资源

max_execution_time = 30 
max_input_time = 30 
memory_limit = 50M

你可以指定每个脚本的最长执行时间,最大内存量和最大数据读取时间。

3.关闭允许脚本包含其他URL的PHP函数

allow_url_include = Off 
allow_url_fopen = Off

如果启用了allow_url_fopen,PHP可以使用文件函数,例如file_get_contents。有了它,PHP可以从远程服务器下载文件。

4.禁用危险功能

 disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

在禁用之前,请确保你的网站不需要其中任何一个函数。

5.限制对文件的访问权限

open_basedir =“/var/www” #允许访问的目录

该open_basedir的配置允许你设置在PHP可以使用函数访问文件的目录如fopen,file_get_contents等。如果该文件是在这个目录之外,PHP将拒绝打开它。

6.临时路径

session.save_path =“/tmp”

确保临时路径位于网站根目录之外。此外,它不能被其他系统用户读取或写入。

数据库

采取什么措施来确保数据库安全性主要取决于应用程序的基础结构。例如,Drupal的数据库抽象层使你能够在不同的数据库之间进行选择。它可以是MySQL,SQLite或PostgreSQL。此外,Drupal支持流行的MySQL分支,例如MariaDB和Percona。你应该了解每个系统可能有不同的安全规范。

还取决于你安置数据库的位置。最简单的(在安全性方面)是在拥有网站的同一台服务器上安装数据库。但是,这种方法可能会影响整个系统的性能,因此服务器管理员可能决定在另外的服务器上安装数据库(站库分离)。对于高负载应用尤其如此。

完成服务器环境配置后,你应该做的第一件事是检查你的架构是否足够强大,并且不容易被DoS攻击破坏。事实上,即使在其工作负载的高峰期,服务器也应该有一些资源储备。

正如我之前提到的,数据库安全性设置的具体情况具体取决于所选的数据库 在本文中,我们来看一些一般性措施:

  • 数据库访问
    如果数据库是在本地安装的,则可以禁用从网络访问它。如果你的数据库位于单独的服务器上,则应该可以设置它将侦听的IP地址。如果在Web服务器和数据库服务器之间共享LAN,则仅设置LAN IP地址(无法通过Internet访问)。可以通过编辑my.conf文件来完成。下面是为数据库和网站使用相同服务器时的配置示例。
    bind-address=127.0.0.1

  • 数据库,用户和权限

查看数据库,用户和权限,以查找任何安全的缺陷。不要为用户提供超出实际需要的权限

  • PHPMyAdmin和类似工具,确保在使用完后禁用图形工具再使用数据库。如果你打算继续使用这些工具,请尝试尽可能难以访问它们。例如,你可以通过.htaccess限制对PHPMyAdmin的访问,并通过白名单允许从某些可信IP地址进行访问。此外,你可以尝试使用MySQL Workbench等本地工具,而不是使用Web类型的。

Drupal

Drupal有一个非常复杂的架构。为了确保这个复杂系统的安全性,最好将所有相关工作分成小部分。在此操作期间,你将遇到仅需要执行一次的配置(设置文件权限,配置settings.php文件等)。将会有一些需要定期关注的任务(更新Drupal和模块)。也许其他人会要求你与Drupal社区密切合作。

以下是你应该记住的两个关键时刻:

确保Drupal安全并不是一件容易的事情,但它对任何网站都非常重要。所以,你一定要努力做到这一点。安全需要你用心的关注。

文件

确保Web服务器对Drupal文件没有写入权限。只有缓存文件,上传,session和临时目录才需要写入权限。以下命令授予对公共文件目录(Ubuntu或者 Debian)的写权限:

$ chown -R www-data:www-data sites / default / files

如果你的网站允许上传文件,请注意如何确保使用这些文件的过程。仅允许上传某些文件类型。相对安全的是文本文件和图片。但是,这并没有改变用户可以上传恶意代码的事情,例如具有.jpg或.txt扩展名的文件。要避免此问题,你可以尝试安装ClamAV模块,该模块可以扫描上传的文件以查找病毒和其他恶意代码。

settings.php

初始安装后,请确保settings.php文件没有写入权限。有关此信息可在相关公告(admin/reports/status in Drupal 8)中找到。

在settings.php中,你可以设置一个重要选项,以防止特殊的攻击(https://www.drupal.org/node/1992030)。这种类型的攻击称为HTTP POST Header攻击。为了保护Drupal 7网站免受他们的影响,请在你的设置中添加基本URL参数:

$ base_url ='http://www.example.com';

Drupal 8中类似的配置是:

$settings['hash_salt'] = file_get_contents('/home/example/salt.txt');

错误日志

Drupal提供了一种监控网站状态的机制。这里我的意思是最近的日志消息和报告。尝试定期检查这些日志并修复发现的问题。报告非常有用,尤其是在安装网站后。例如,如果你忘记添加可信主机设置或者对settings.php文件具有写访问权限,它可以通知你。

只需查看“最近的日志消息”页面,即可跟踪某些类型的可疑活动。举一个例子,想象一下当你注意到新用户注册激增时的情况。

不要忘记禁用PHP错误的回显。普通用户不应该看到它们。虽然你可能会在“最近的日志消息”页面上看到这些错误,但请记住它不会捕获所有PHP错误。因此,有时请检查你的服务器日志文件。

Drupal核心和贡献模块的变化

这部分是关于Drupal核心和贡献模块的黑客攻击。实际上,一个众所周知的事实是,新开发人员可能会偷工减料并将他们的代码或一些更改直接放入Drupal核心或已安装的贡献模块中。这可能会导致Drupal本身的不可预测行为,以及漏洞的出现,或者恶意存放后门。

为了摆脱这些问题,我建议使用Hacked!模块。该模块扫描当前安装的Drupal,贡献的模块和主题,并将所有内容与drupal.org中的相应版本进行比较。如果你安装了Diff模块,请使用Hacked!会告诉你有什么放生了改变。这让hacked!模块是任何网站宝贵的分析工具。

用户和权限

Drupal具有直观且可自定义的权限模型。权限是此类系统中最简单的元素。一组权限可以按角色类型分组。然后可以将此角色类型分配给特定用户。在更新Drupal核心和贡献模块期间可能会出现新的权限和角色类型。你应定期检查(例如更新后)为你的网站上的每个用户分配的角色类型以及这些角色类型中包含的权限。尝试最小化每个角色中包含的权限。不要为用户提供超出实际需要的权限。

一个好的配置是使用非默认用户名(例如不是admin或root),因为黑客将首先尝试默认的用户名。为了更高的安全性,甚至可以完全禁用管理员帐户。

另一件好事是检查你网站上的用户活动并锁定非活跃帐户。用户过期模块提供了定义特定用户帐户将被锁定的功能。此外,它可以锁定在一段时间内处于非活跃状态的帐户。

有用的模块

根据你的需要,你可以在drupal.org上找到许多有用的安全模块。以下是其中一些:

总结

在本文中,我们回顾了一些保护你网站的方法。还涵盖了必要基础架构的所有部分 - 从通用服务器设置到某些Drupal模块的特定用例。

许多人忽略了监视其站点和服务器基础结构的安全性,直到出现明显问题。虽然即使遵守一些简单的规则也有助于避免它们的出现。请始终耐心始终关注系统的安全性。祝你好运!


作者:ADCI Solutions团队负责人Evgeny Leonov
翻译:i春秋翻译小组-K0nJac
责任编辑:F0rmat
翻译来源:https://medium.com/@ADCISolutions/security-for-drupal-and-related-server-software-f7008211f80b

大家有任何问题可以提问,更多文章可到i春秋论坛阅读哟~

任务混部最少服务器数量计算问题 这里的并行度指的是该任务运行时会占用的服务器数量。要注意的是,一个服务器在每个时刻可以被任意任务使用,但同一时刻最多只能被一个任务占用,并且任务运行结束后会立即释放服务器(结束时刻不占用)。最后,我们从字典中找出服务器数量的最大值,这个最大值就是完成这批任务混部最少需要的服务器数量。对于每个任务,我们会遍历其对应的时间区间,将该任务的并行度累加到对应时刻的服务器数量上。任务混部的目标是让这批任务由同一批服务器承载运行,你需要计算完成这批任务混部最少需要多少服务器,以此来最大化控制资源成本。 阅读详情

相关推荐

在Redroid容器中构建Frida RPC服务:自动化生成淘宝X-Sign签名参数

本文详细介绍了在Redroid容器中构建Frida RPC服务,实现自动化生成淘宝X-Sign等签名参数的完整方案。通过逆向分析定位关键方法,定制Redroid系统使Frida-Server常驻运行,并编写Frida脚本将签名方法暴露为RPC接口,最终封装为可远程调用的微服务,解决了签名生成的可移植性与工程化难题。

ice55的博客 644

Drupal 网站漏洞修复以及网站安全防护加固方法

drupal是目前网站系统使用较多一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置,drupal的代码开发较为严谨,安全性较高,但是再安全的网站系统,也会出现网站漏洞,drupal是网站运行访问必不可少的一个分支,为了网站的安全,不被攻击者攻击,我们要对网站以及服务器进行全面的安全加固与安全设置,包括我们服务器安全设置,web安全设置,php环境安全设置,msyql数据库...

网站安全专家 569

Docker环境下onlyOffice 7.5.1破解版部署全攻略(含ARM架构适配)

本文提供了在Docker环境中部署OnlyOffice 7.5.1破解版的完整实战指南。内容涵盖x86与ARM架构服务器的详细部署步骤、环境配置、持久化存储设置以及生产环境下的安全与性能优化。重点解决了ARM架构适配的常见问题,并分享了使用Docker Compose进行服务编排和日常维护的技巧,帮助用户快速搭建私有化文档协作平台。

redis7keeper的博客 353

buuctf [Drupal]CVE-2018-7602

漏洞描述 Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,在GPL2.0及更新协议下发布。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。 Drupal 7.x版本和8.x版本中的存在存在远程代码执行漏洞。远程攻击者可利用该中断执行任意代码。 http://blog.nsfocus.net/drupal-cve-2018-7602/ https://blog.youkuaiyun.com/weixin_427

qq_1873822的博客 705

用户和实体行为分析(UEBA)基础指南及解决方案

用户和实体行为分析(UEBA)或异常检测是一种网络安全技术,它使用机器学习(ML)算法来检测网络中用户、主机和其他实体的异常活动。

ITmoster的博客 2892

数字IC设计之时序分析基础概念汇总

时序分析主要有两种办法:静态时序分析: (static timing analysis,STA),是遍历电路存在的所有时序路径,根据给定工作条件(PVT)下的时序库.lib文件计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足约束要求,根据最大路径延时和最小路径延时找出违背时序约束的错误。

weixin_45230720的博客 5606

在RHEL、CentOS上安装建站神器Drupal 8

------------ 通过 SystemD - CentOS/RHEL 7 和 Fedora 22+ -------------------------------- 通过 SysVInit - CentOS/RHEL 6 和 Fedora ----------------------------------- 通过 SysVInit - CentOS/RHEL 6 and Fedora -------------若上述设置正确,Drupal 站点安装应该完成了,如下图界面。

Free雅轩的博客 313

HCLR-Net: 混合对比学习正则化与局部随机扰动用于水下图像增强

独特贡献在于开发了一种处理负样本的新策略,既保留了负样本的统计特性,又防止网络过度剖析这些样本中的特征信息。通过根据每个通道特征的重要性对模型进行加权,我们可以增强富含上下文信息的通道,从而获得更准确、更详细的特征表示。AHA 模块利用垂直方向上的 Avgpool 和水平方向上的 Maxpool 来捕捉远程依赖关系和准确的位置信息,从而有效确定不同方向上的特征退化。对比学习策略通常旨在最小化正样本之间的欧氏距离,使预测图像更接近理想图像,同时最大化负样本与预测图像之间的距离,使它们进一步远离非理想表征。

G-Howe的博客 1457

[Drupal]CVE-2019-6339 BUUCTF

[Drupal]CVE-2019-6339 参考文档 前期准备还是和之前一样,语言选english,因为没有mysql环境,所以安装的时候可以选择sqlite数据库,其他默认下一步 利用 找到管理员资料头像上传处 Drupal 的图片默认存储位置为 /sites/default/files/pictures//,默认存储名称为其原来的名称 /admin/config/media/file-system处设置临时目录 phar://./sites/default/files/pictures/202

krysyal的博客 452

小龙虾 OpenClaw 安装全攻略:本地部署 AI 智能体一步到位

OpenClaw(昵称小龙虾)是一款 MIT 开源协议的本地优先 AI 智能体执行网关,支持多平台接入、本地部署,能实现自然语言驱动的设备自动化操作,区别于纯对话 AI,可直接操控系统执行实际任务,数据全程本地存储更安全。本文带来 2026 最新版 OpenClaw 安装教程,适配 Windows/macOS/Linux 全系统,新手也能一键搞定。

lujiawei00的专栏 1974

YoloV8优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4264

登录服务器后如何找到对应的drupal所在的文件夹

通过以上步骤,您应能确定 Drupal 安装目录的位置,从而进行进一步的操作和维护。

Debug yourself! 749

微信文件自动归档!手把手教你用OpenClaw搭个自己的“数字员工”,告别重复劳动

很多人说“AI是未来”,但未来不是靠喊口号的。OpenClaw的真正价值,是让你把重复劳动交出去,把时间留给真正需要创造力的事。这事真能干,而且不难。下载OpenClaw(GitHub仓库按我写的步骤跑一遍遇到坑,评论区留言——我亲自帮你看作者后记:上周五,我让AI自动归档了文件后,终于在5点准时下班。回家路上,我给它发了条消息:“干得漂亮”。它没回,但我知道——它在默默等我的下一条指令。

2601_94871597的博客 413

liunx环境下搭建drupal门户网站

以上为drupal大致的搭建流程,如有其它问题,欢迎评论区留言,作者会看的。

2201_75894446的博客 955

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

实战项目 1 Linux-Drupal靶场渗透测试案例详解

首先,通过搭建 Kali Linux 环境和扫描网络段获取靶机信息,确定了目标网站运行的 Drupal CMS,并利用 Metasploit 框架中的漏洞模块(如Drupalgeddon2)进行漏洞利用。随后,成功获取了对靶机的 shell 访问权限,并通过查找配置文件和数据库密码,逐步提升了系统权限。最终,通过 SSH 登录和特权文件的查找,成功获取了靶场中隐藏的多个 flag,完成了渗透测试任务。

m0_50572593的博客 2223

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

drupal 配置文件

settings.php $settings[‘file_public_path’] = ‘sites/default/files’;

rf344541393的博客 3033

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Drupal_网站迁移后的配置

网站往服务器迁移后遇到了一些问题,这里汇总一下: 1,无响应无提示,返回空白页面 2,有内容,但是错乱,有很多丢失,而且没有CSS样式 3,PDO错误(你肯定忘了在settings.php里面配置Mysql密码了把) 4,图片都显示不了 1,环境是 nginx服务器 经过几番查找, 可以在首页加入 error_reporting(E_ALL); 发现问

PHP攻城师 1599

Drupal 7.31 SQL注入漏洞利用详解及EXP

 有意迟几天放出来这篇文章以及程序,不过看样子Drupal的这个洞没有引起多少重视,所以我也没有必要按着不发了,不过说实话这个洞威力挺大的,当然,这也是Drupal本身没有意料到的。 0x00 首先,这个漏洞真的很大,而且Drupal用的也比较多,应该可以扫出很多漏洞主机,但是做批量可能会对对方网站造成很大的损失,所以我也就只是写个Exp。不过,这个洞好像不怎么被重视,这也是极为不合适。...

Exploit的小站~ 3万+

DC系列靶场渗透测试流程总结

因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。先利用openssl命令创建一个密码,得到hash密码我们切换到tmp目录下,新建一个文件再回到/opt/devstuff/dist/test目录,执行程序test,将xiao的文件内容写入到/etc/passwd文件里面可以看到xiaofeixia用户已经添加到/etc/passwd文件里了,接下来然后使用命令su - xiao切换到我们添加的xiao用户,输入之前设置好密码即可登录.

zhouA0221的博客 1849

靶机4.DC-1

原来admin的密码hash后为: $S$Dz/WXAZ/43kuh9NcKDtWd3u8vKGyrMd32P9mF2sB7wGDNVjfbOBS。可以看到admin的密码给加密了$S$D应该是某种hash,也不好直接解密。可能文件中有加密的文件,我们去找找。典型的drupal,由于我们这里是外国搭建的靶机,所以就纯kali渗透即可,启动Metersploit。找到文件后(./scripts/password-hash.sh)大概查看下,简单运行下看看有什么东西。2.whatweb 指纹识别。

wj33333的博客 431

Drupal8 使用模块的配置文件

D8中移除了variable表及相关方法 (variable_get(),variable_set()等) 。用config表取代了。 新的方法该如何使用? 以D8的Youtube模块为例 配置文件要放在模块名下的config/install/youbute.setting.yml文件中。格式{machine_name}.setting.yml。 在模块启用后会自动读取该文件的内容到co...

weixin_30846599的博客 260

drupal 配置

1      创建基本页 内容 -&gt; 添加 -&gt; 基本页面 2      添加频道菜单 结构 -&gt; 菜单 -&gt; 主菜单 添加 : 首页 , 关于 , 服务 node/1 资讯 taxonomy/term/10 联系我们 contact ...

fengjunoo的专栏 222

Drupal7 配置经验整理

1、文件系统配置 公共文件系统路径是sites/default/files 临时目录默认是tmp 如果不修改临时目录路径,会导致文件读取发生错误,比如Warning: file_put_contents(temporary://fil414B.tmp) [function.file-put-contents]: failed to open…… 建议修

Peak Xin's Blog 1614

Drupal安装配置文档(一)

Drupal安装配置文档 前段时间帮公司弄了个内部网站,作为一个内部信息交流平台,发现一个叫Drupal的内容管理系统很适合,于是研究了一番。由于篇幅有限,本文档分为(一)(二)两篇,第一篇讲述drupal及其环境的安装,第二篇写了Drupal的配置使用以及实践,由于Drupal涉及PHP、网站之类,所以没有深究,但现在公司已经能很好的用上drupal了,我个...

weixin_34290390的博客 315

Drupal7 常用配置

1、设置默认时区 导航到“首页》管理》配置》地方和语言》区域设置”,如图所示(路径为admin/config/regional/settings) 我们的设置如表所示: 属 性 值 默认国家 中国 默认时区 亚洲/上海 一周的第一天 星期一 用户可以设置自己的时区 取消选中 2、设置默认的日期格式 导航到“首页》管理》配置》地方和语言》日期和时间”,如图所

Peak Xin's Blog 1279

Drupal8 入门教程(一)安装部署

&#13; 一、Drupal简介   Drupal 是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。截止2011年底,共有13,802位WEB专家参加了Drupal的开发工作;228个国家使用181种语言的729,791位网站设计...

Tinywan 4972
上一篇: Cobaltstrike、armitage联动
下一篇: 从虚拟机架构到编译器实现导引【一本书的长度】
张悠悠66
博客等级 码龄9年 828粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值