
Archives for 日常随笔
HTML部分:
创建一个<div>容器#demo,其中包含一个<ul>列表#demo1和一个空的<div>容器#demo2。
每个<li>元素代表一行滚动的文字或图片。
CSS部分:
设置#demo的样式,使其具有固定的高度和宽度,并隐藏溢出的内容。
设置#demo1和#demo2的样式,使其内容左对齐。
设置<li>元素的样式,包括高度、缩进和颜色。
JavaScript部分:
获取#demo、#demo1和#demo2的DOM元素。
将#demo1的内容复制到#demo2中,以便实现无缝滚动。
定义Marquee函数,控制滚动效果。
使用setInterval函数定期调用Marquee函数,实现滚动。
添加鼠标经过和离开事件,实现鼠标经过时暂停滚动的功能。
...more»
设置IP访问限制:
定义每个IP地址在指定时间内的请求限制次数。
定义时间限制(秒)。
获取用户IP地址:
使用$_SERVER获取用户的IP地址。
存储访问记录:
使用文件存储每个IP地址的访问时间和请求次数。
文件路径和文件名使用IP地址的SHA1哈希值,确保唯一性。
读取和更新访问记录:
如果文件不存在,初始化访问时间和请求次数。
如果文件存在,读取当前的访问时间和请求次数。
检查访问次数:
如果用户在指定时间内请求次数超过限制,返回429状态码。
如果请求次数未超过限制,更新访问时间和请求次数。
保存更新后的访问记录:
将更新后的访问时间和请求次数写入文件。
执行正常业务代码:
在防护机制通过后,执行正常的业务代码。
...more»
通过限制同一IP地址在指定时间段内的访问次数,有效减少恶意请求,保护服务器免受CC攻击的影响。以下是关键步骤总结:
设置IP访问限制:
定义请求限制次数和时间间隔。
获取用户IP地址:
使用$_SERVER获取用户的IP地址。
存储访问记录:
使用文件存储每个IP地址的访问时间和请求次数。
读取和更新访问记录:
初始化或读取当前的访问时间和请求次数。
检查访问次数:
如果请求次数超过限制,返回429状态码。
保存更新后的访问记录:
将更新后的访问时间和请求次数写入文件。
执行正常业务代码:
在防护机制通过后,执行正常的业务代码。
通过这些措施,您可以有效减少CC攻击对网站的影响,确保网站的稳定性和性能。如果遇到复杂的技术问题,建议咨询专业的技术支持人员以获得进一步的帮助。
...more»
Nginx的主要配置文件通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。我们可以通过文本编辑器(如nano、vim等)打开并编辑该文件。以下是具体步骤:
原始配置示例
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
...more»
总结表格
规则类型
示例代码
描述
禁止所有搜索引擎
User-agent: *<br>Disallow: /
完全阻止所有搜索引擎访问整个站点
针对特定搜索引擎
User-agent: <br>Disallow: /
只阻止指定搜索引擎访问整个站点
限制特定目录
User-agent: *<br>Disallow: //
阻止访问特定目录下的所有内容
阻止动态页面
User-agent: *<br>Disallow: /*.$
阻止特定类型的动态页面被索引
防止图片索引
User-agent: *<br>Disallow: /*.$
阻止特定格式的图片文件被索引
只允许HTML页面
User-agent: *<br>Allow: /*.html$<br>Disallow: /
允许HTML页面被抓取,其他一律禁止
通过上述方法,您可以灵活地控制搜索引擎的行为,从而更好地管理和优化网站的内容可见性。请根据自身需求选择合适的规则组合,并确保遵循最佳实践以避免不必要的问题。
...more»
黑链是指网站管理者在不知情的情况下,页面中被加入了不明链接。这些链接通常使用display:none等CSS样式隐藏,难以被普通用户发现。这些链接通常被添加在首页代码的底部,查找起来相对简单,只需通过浏览器右键查看源代码即可。
解决办法:
定期检查源代码:定期检查网站的HTML源代码,特别是首页和关键页面,查找是否有异常的隐藏链接。
使用安全插件:安装和使用安全插件,如Wordfence、Sucuri等,这些插件可以自动检测和移除黑链。
监控文件修改:使用版本控制系统(如Git)监控网站文件的变化,及时发现异常修改。
2. 恶意跳转代码
描述: 恶意跳转代码会根据访客的IP地址所在区域选择性跳转。网站管理员所在区域不跳转,因此很难被发现。这种代码通常隐藏在网站的.js文件或模板文件中,形式为<script>标签。
解决办法:
检查JavaScript文件:仔细检查网站的所有.js文件,查找可疑的跳转代码。
使用代码扫描工具:使用代码扫描工具(如RIPS、PHP Security Scanner)检测潜在的安全漏洞。
监控文件修改:定期检查网站文件的修改时间,发现异常修改及时处理。
3. 搜索引擎劫持
描述: 搜索引擎劫持是指通过修改网站代码,使搜索引擎查询结果中的网站标题和内容被更改,页面内容并非网站的真实内容。这种劫持通常通过在网站根目录添加Global.asa或web.config文件实现,也可能直接修改程序文件如config.php或config.asp。
解决办法:
检查关键文件:检查网站根目录下的Global.asa、web.config等文件,查找可疑代码。
比对文件修改时间:通过文件修改时间比对,查找最近被修改的文件。
恢复备份:如果有定期备份,可以恢复到被篡改前的版本。
使用安全插件:安装和使用安全插件,监控和防止文件被篡改。
...more»
方式
描述
解决办法
挂黑链
页面中被加入隐藏链接,通常在首页代码底部
定期检查源代码,使用安全插件,监控文件修改
恶意跳转代码
根据访客IP地址选择性跳转,隐藏在.js或模板文件中
检查JavaScript文件,使用代码扫描工具,监控文件修改
搜索引擎劫持
修改网站代码,使搜索引擎查询结果中的标题和内容被更改
检查关键文件,比对文件修改时间,恢复备份,使用安全插件
...more»
robots.txt 文件是网站管理员用来指导搜索引擎蜘蛛如何抓取和索引其网站内容的重要工具。它由一系列简单的规则构成,这些规则定义了哪些部分允许或不允许被搜索引擎访问。以下是创建和优化 robots.txt 文件的关键点:
基本结构
用户代理(User-agent):指定规则适用的搜索引擎爬虫。使用通配符*表示所有爬虫。
不允许访问的路径(Disallow):列出不希望被索引的具体URL路径。留空则表示允许访问所有路径。
常见用法示例
功能描述
示例
禁止所有搜索引擎收录
User-agent: *<br>Disallow: /
针对特定搜索引擎设置规则
User-agent: Googlebot<br>Disallow: /private/
限制特定目录的访问
User-agent: *<br>Disallow: /admin/
阻止动态页面被抓取
User-agent: *<br>Disallow: /*?*
防止图片文件被索引
User-agent: *<br>Disallow: /images/
只允许HTML静态页面被抓取
User-agent: *<br>Allow: /\.html$<br>Disallow: /
注意事项
文件位置:必须放置在网站根目录下,命名为robots.txt。
大小限制:单个文件不应超过500KB。
更新频率:定期检查并调整规则以适应网站结构变化。
测试工具:利用搜索引擎提供的在线工具验证规则的有效性。
合理配置 robots.txt 文件可以帮助您更好地管理和优化网站的内容可见性,确保敏感信息不会被公开,同时让有价值的内容更容易被发现。
...more»
web.config 文件是专为微软 Internet Information Services (IIS) Web 服务器设计的配置文件。它由一系列XML指令组成,用于控制IIS处理网站或应用程序的各种设置和行为。该文件类似于Apache Web服务器的.htaccess文件,但专门运行于IIS环境。以下是 web.config 文件的主要功能及其配置项:
主要功能
认证和授权:定义哪些用户或用户组拥有网站或特定部分的访问权限。
会话状态:配置网站的会话状态管理,如存储方式、超时设定等。
自定义错误页面:设置错误页面,如404页面未找到错误的自定义页面路径。
数据库连接字符串:存储数据库连接信息,包括服务器位置、数据库名称、身份验证详细信息等。
应用程序设置:提供一种方法来设置和存储应用程序级别的变量,这些变量可以在整个应用程序中访问。
URL重写规则:使用URL重写模块设置SEO友好的URL结构,或重定向用户从旧页面到新页面。
请求限制:设置请求长度、上传文件大小等限制。
模块和处理程序:配置应用程序依赖的HTTP模块(如身份验证模块、缓存模块)和处理程序(如为ASP.NET页面服务的处理程序)。
调试和跟踪:打开或关闭调试功能,并设置跟踪信息的输出,以便在出现问题时诊断错误。
应用程序部署和环境配置:定义与部署相关的设置,并为不同环境(如开发、测试、生产)设置配置变量。
配置项示例
功能
示例配置
认证和授权
<authentication mode="Windows" />
会话状态
<sessionState mode="InProc" timeout="20" />
自定义错误页面
<customErrors defaultRedirect="error.html" mode="On">
数据库连接字符串
<connectionStrings><add name="MyDB" connectionString="Server=myserver;Database=mydb;User ID=user;Password=pass;" /></connectionStrings>
应用程序设置
<appSettings><add key="AppSettingKey" value="SomeValue" /></appSettings>
URL重写规则
<rewrite><rules><rule name="Rewrite to index"><match url="^$" /><action type="Rewrite" url="index.aspx" /></rule></rules></rewrite>
请求限制
<security><requestFiltering><requestLimits maxAllowedContentLength="10485760" /></requestFiltering></security>
模块和处理程序
<modules><remove name="FormsAuthentication" /><add name="CustomAuthModule" type="Namespace.CustomAuthModule, AssemblyName" /></modules>
调试和跟踪
<compilation debug="true" />
应用程序部署
<deployment retail="false" />
请注意,擅自更改或删除 web.config 文件可能会影响网站的正常使用。因此,在进行任何修改之前,建议备份现有文件,并确保理解每个配置项的作用。
...more»
在选择Web服务器时,Nginx和Apache是两个非常流行的选择。两者各有优势,具体取决于您的网站需求和技术栈。下面将详细对比Nginx和Apache的速度及适用场景,帮助您做出更明智的选择。
一、性能对比
特性
Nginx
Apache
架构
事件驱动的异步非阻塞架构
多线程或多进程模型
并发处理能力
高效处理大量并发连接,资源消耗低
并发请求增多时,内存和CPU消耗显著增加
静态内容处理
优异,适合高并发场景下的静态资源分发
较好,但不如Nginx高效
动态内容处理
可通过反向代理与后端应用服务器配合
内置模块支持多种脚本语言,直接处理动态内容
配置复杂度
简洁易读,易于维护
模块丰富,灵活性强
二、适用场景分析
高并发场景
Nginx:由于其独特的事件驱动架构,Nginx能够同时处理成千上万个并发连接而不影响性能。它非常适合那些需要快速响应大量用户请求的应用程序,如社交媒体平台、视频流媒体服务等。
Apache:相比之下,在面对极高并发量时,Apache的表现可能会受到限制。尽管可以通过调整工作模式(如worker MPM)来优化性能,但在极端情况下仍可能面临瓶颈。
静态资源分发
Nginx:对于以图片、CSS、JavaScript等静态文件为主的站点,Nginx无疑是最佳选择之一。它可以迅速地将这些资源推送给客户端,并且占用较少的系统资源。
Apache:虽然也能很好地处理静态资源,但在效率上略逊于Nginx,尤其是在大规模部署时。
动态内容生成
Nginx:通常作为反向代理服务器与后端应用程序(如PHP-FPM、Node.js等)协同工作,从而实现高效的动态页面渲染。
Apache:内置了对多种编程语言的支持,可以直接执行CGI、FastCGI、mod_php等形式的脚本,因此在某些特定环境下更为便捷。
灵活性与扩展性
Nginx:配置文件相对简单直观,易于理解和修改。然而,它的模块数量相对较少,且不支持动态加载。
Apache:拥有庞大的模块库,几乎可以满足任何定制化需求。这使得Apache成为开发人员进行深度定制的理想工具。
三、总结
综上所述,如果您正在构建一个以静态资源为主、预计会有较高并发访问量的网站,那么Nginx将是更好的选择。它不仅速度快,而且在资源利用方面表现出色,能够在有限的硬件条件下提供稳定的服务。
另一方面,如果您的项目涉及大量的动态内容生成或复杂的业务逻辑,Apache凭借其强大的模块生态系统和直接处理脚本的能力,或许会更加合适。当然,也可以考虑将两者结合使用——用Nginx作为前端代理负责流量分发,而让Apache专注于后端的动态内容处理。
最终的选择应基于具体的业务需求和技术团队的经验。希望上述信息能为您的决策提供有价值的参考。
...more»
