Welcome to - 小枫的Blog
子辰API
子辰聊天室
热门文章
关于图片问题
hello world!
如何给自己的网站添加免费SSL?
换了新图床
XSS漏洞原理、分类、危害及防御
标签搜索
网站前端
闲聊杂谈
网站美化
php
网站后端
更新
网站安全
广告
typecho
子辰在线聊天室
发布
登录
注册
Welcome to - 小枫的Blog
推荐文章
推荐
每天60秒
最新发布
2023-06-20
二进制转换工具
废话不多说直接上代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>二进制互转工具</title> <!-- 引入 layui.css --> <link href="https://unpkg.com/layui@2.8.0/dist/css/layui.css" rel="stylesheet"></link> <!-- 引入 layui.js --> <script src="https://unpkg.com/layui@2.8.0/dist/layui.js"></script> <!--引入jquery--> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <style type="text/css"> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: cornsilk; } .container { display: flex; flex-direction: row; } .column { flex-basis: 50%; padding: 20px; } textarea { width: 100%; height: 200px; resize: none; border: 1px solid #ccc; padding: 10px; font-size: 16px; } button { background-color: #4CAF50; color: white; border: none; padding: 10px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; cursor: pointer; } .title { text-align: center; } .copy { background-color: #008CBA; } .clear { background-color: #f44336; } </style> <script> function convertToBinary() { let input = document.getElementById("input").value.trim(); if(input) { // 将文本转换为二进制 let binary = ""; for(let i = 0; i < input.length; i++) { let charCode = input.charCodeAt(i).toString(2); while(charCode.length < 8) { charCode = "0" + charCode; } binary += charCode + " "; } // 显示二进制 document.getElementById("output").value = binary.trim(); } else { alert("请输入文本或二进制"); } } function convertToText() { let input = document.getElementById("input").value.trim(); if(input) { // 将二进制转换为文本 let text = ""; input.split(" ").forEach(function(binary) { let charCode = parseInt(binary, 2); text += String.fromCharCode(charCode); }); // 显示文本 document.getElementById("output").value = text; } else { alert("请输入文本或二进制"); } } //一键复制 function copyOutput() { let output = document.getElementById("output"); output.select(); document.execCommand("copy"); alert("已复制到剪贴板"); } //一键清除 function clearInput() { document.getElementById("input").value = ""; } //一键粘贴 function pasteFromClipboard() { navigator.clipboard.readText() .then(text => { $("#input").val(text.trim()); }) .catch(err => { console.error('Failed to read clipboard contents: ', err); }); } </script> </head> <body> <h1 class="title">在线二进制转文本文本转二进制转换器</h1> <div class="container"> <div class="column"> <h2 style="text-align: center;" >输入</h2> <textarea id="input" placeholder="在此处输入文本或二进制,每隔8位空一格,CTRL+Z撤销~"></textarea> <div class="layui-btn-container"> <button class="layui-btn" onclick="convertToBinary()">转换为二进制</button> <button class="layui-btn" onclick="convertToText()">转换为文本</button> <button class="layui-btn layui-btn-danger" onclick="clearInput()">清除</button> <button class="layui-btn" onclick="pasteFromClipboard()">粘贴</button> </div> </div> <div class="column"> <h2 style="text-align: center;" >输出</h2> <textarea id="output" placeholder="此处是输出框哦!可以自由复制或点击下面的一键复制~" ></textarea> <button class="layui-btn layui-btn-normal" onclick="copyOutput()">复制</button> </div> </div> </body> </html> 预览: 也可以点击此链接
网站前后端
# 网站前端
小枫_QWQ
1年前
0
13
2
2023-05-06
XSS漏洞原理、分类、危害及防御
一、XSS简介 XSS全称:跨站脚本(Cross Site Scripting) ,为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS;攻击者会向web页面(input表单、URL、留言版等位置)插入恶意JavaScript代码,导致管理员/用户访问时触发,从而达到攻击者的目的。 二、XSS原理 服务器对用户提交的数据过滤不严,导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行,从而实现对客户端的攻击目的。 三、XSS分类 1、反射型(非持久型) 反射型XSS,又称非持久型XSS,攻击相对于受害者而言是一次性的,具体表现在受害者点击了含有的恶意JavaScript脚本的url,恶意代码并没有保存在目标网站,而Web应用程序只是不加处理的把该恶意脚本“反射”回受害者的浏览器而使受害者的浏览器执行相应的脚本。 反射型(非持久型)图片 2、存储型(持久型) 存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库。当下一次从数据库中获取该数据时程序也未对其进行过滤,页面再次执行XSS代码持续攻击用户。存储型XSS漏洞大多出现在留言板、评论区,用户提交了包含XSS代码的留言到数据库,当目标用户查询留言时,那些留言的内容会从服务器解析之后加载出来。 存储型(持久型)图片 存储型(持久型)图片 3、DOM型(非持久型) DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式,DOM-XSS简单理解就是不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题。 DOM型(非持久型)图片 DOM型(非持久型)图片 四、XSS漏洞的危害 1.窃取用户Cookie 2.后台增删改文章 3.XSS钓鱼攻击 4.利用XSS漏洞进行传播和修改网页代码 5.XSS蠕虫攻击 6.网站重定向 7.获取键盘记录 8.获取用户信息等 五、XSS漏洞防御 1、对输入和URL参数进行过滤(白名单和黑名单) 检查用户输入的数据中是否包含一些特殊字符,如<、>、’、“等,发现存在特殊字符,将这些特殊字符过滤或者编码。 2、HTML实体编码 字符串js编码转换成实体html编码的方法(防范XSS攻击) https://www.cnblogs.com/dearxinli/p/5466286.html 3、对输出内容进行编码 在变量输出到HTML页面时,可以使用编码或转义的方式来防御XSS攻击。 4、对于typecho的 关闭评论 下载Typecho AntiXSS Plugin 下载地址:https://github.com/BakaLabs/Typecho-1.2-AntiXSS 提取码: 负责声明 部分图片转载自https://jingyan.baidu.com/article/495ba841a771f538b30ede82.html,版权归原网站或作者本人所有,若有无意侵权或转载不当之处请联系我处理,谢谢合作!
网站前后端
# 网站安全
# php
# 网站前端
# 网站后端
小枫_QWQ
1年前
0
38
1
2023-05-02
制作新年倒计时教程
新建index.html 以下代码复制到里面 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>2024倒计时(xcccx.top)</title> </head> <body> <div id="calendar-line" class="calendar-line" style="margin-top:5px;background:linear-gradient(90deg, rgba(138, 206, 211, 0.7) 0%, rgba(128, 133, 196, 0.7) 0%, rgba(236, 238, 239, 1) 0%, rgba(236, 238, 239, 1) 0%);"><font style="color: rgba(67,8,234,0.67);"><p align="center"><b>距离2024年还差:</b></p></font><div style="font-size:10px;text-align:right;"> <div class="resourceLoader" style="display:none" data-is-module="false" data-mime="">MediaWiki:EventTimer</div> <body> <p id="demo"></p> <script> // 设置结束倒计时的日期 const countDownDate = new Date("2023-12-31 23:59:59").getTime(); // 设置开始倒计时的日期 const startDownDate = new Date("2023-01-1 00:00:00").getTime(); // 每秒更新一次 var x = setInterval(function() { // 获取当前时间 var now = new Date().getTime(); // 获取当前时间与countDownDate 的时间差 var distance = countDownDate - now; // 获取startDownDate与countDownDate 的时间差 var downdate = countDownDate - startDownDate; // 获取startDownDate与当前时间 的时间差 var downdate1 = now - startDownDate; // 将时间差转为 days, hours, minutes and seconds var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); const percentile = (downdate1 * 100)/downdate; document.getElementById("demo").innerHTML = "剩余时间:" + days + "天 " + hours + "小时" + minutes + "分" + seconds + "秒"; document.getElementById("calendar-line").style.background = "linear-gradient(90deg, rgba(138, 206, 211, 0.7) 0%, rgba(128, 133, 196, 0.7) " + percentile + "%, rgba(236, 238, 239, 1) " + percentile + "%, rgba(236, 238, 239, 1) 100%)"; // 若是时间差耗尽,结束定时器 if (distance < 0) { clearInterval(x); document.getElementById("demo").innerHTML = "2024你好!。"; document.getElementById("calendar-line").style.background = "linear-gradient(90deg, rgba(138, 206, 211, 0.7) 0%, rgba(128, 133, 196, 0.7) 0%, rgba(236, 238, 239, 1) 0%, rgba(236, 238, 239, 1) 100%)"; } }, 1000); </script> </body> <span class="eventTimer" data-start="2022/04/27 20:00" data-end="2022/09/26 19:59:35" data-info="活动"></span></div></div> </body> </html>效果预览: 2024倒计时(xcccx.top) 距离2024年还差: MediaWiki:EventTimer // 设置结束倒计时的日期 const countDownDate = new Date("2023-12-31 23:59:59").getTime(); // 设置开始倒计时的日期 const startDownDate = new Date("2023-01-1 00:00:00").getTime(); // 每秒更新一次 var x = setInterval(function() { // 获取当前时间 var now = new Date().getTime(); // 获取当前时间与countDownDate 的时间差 var distance = countDownDate - now; // 获取startDownDate与countDownDate 的时间差 var downdate = countDownDate - startDownDate; // 获取startDownDate与当前时间 的时间差 var downdate1 = now - startDownDate; // 将时间差转为 days, hours, minutes and seconds var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); const percentile = (downdate1 * 100)/downdate; document.getElementById("demo").innerHTML = "剩余时间:" + days + "天 " + hours + "小时" + minutes + "分" + seconds + "秒"; document.getElementById("calendar-line").style.background = "linear-gradient(90deg, rgba(138, 206, 211, 0.7) 0%, rgba(128, 133, 196, 0.7) " + percentile + "%, rgba(236, 238, 239, 1) " + percentile + "%, rgba(236, 238, 239, 1) 100%)"; // 若是时间差耗尽,结束定时器,秒杀结束 if (distance < 0) { clearInterval(x); document.getElementById("demo").innerHTML = "2024你好!。"; document.getElementById("calendar-line").style.background = "linear-gradient(90deg, rgba(138, 206, 211, 0.7) 0%, rgba(128, 133, 196, 0.7) 0%, rgba(236, 238, 239, 1) 0%, rgba(236, 238, 239, 1) 100%)"; } }, 1000); 也可以访问此链接来预览效果 ::(酷) 其余的自己想办法美化吧!
网站前后端
# 网站前端
小枫_QWQ
1年前
0
32
5
2023-04-16
请选择你的拍屏导师
阿泰尔派 因缺少无名指而拿不稳手机 这导致他们的拍屏通常是东倒西歪的 ? 艾吉奥派 因本性使然,他们的拍屏 内容显得很不对劲,有时 还会附上几张意义不明的涩图 ? 康纳派 因为忙着寻找查尔里 他们通常很赶时间 他们的拍屏也像闪电一样带过 ? 爱德华派 他们被金钱迷惑了双眼 拍屏也模糊不清 ? 谢伊派 因为信仰理解之父 他们的拍屏也有圣光守护 ? 亚诺派 We work in the dark 他们擅长在黑暗中潜行 ? 弗莱姐弟派 因技术先进终于学会了截屏但清晰度仍有待提高 某些情况下甚至不如拍屏 ? 巴耶派 因为尚未掌握拍屏技术 他们通常喜欢画下来 ✍
闲聊杂谈
# 网站前端
小枫_QWQ
1年前
0
11
4
2023-04-04
(广告)雨云服务器宣传
你们平时在哪开网站的:@(想一想) 1.我最近用的 雨云图片 挺便宜的还不用备案 2.方便的话来这里https://www.rainyun.cc/rcs 3.帮我填一下我的优惠码 MzE3MzY= (想再拿点优惠,谢谢你::(滑稽) 朋友们有没有开MC服的:@(汗) 我想在这买个40多块钱的服务器,5900X那种 方便的话来这里https://www.rainyun.cc/rgs 帮我填一下我的优惠码 MzE3MzY= (想再拿点优惠,谢谢你 :) 20块一个月有人要嘛::(捂嘴笑) 我搞到了一些服务器,开网站免备案那种 配置是2h2g 100m 20ssd 需要的话私聊一下,可以预装宝塔 50块钱一个月有人要嘛::(滑稽) 最近朋友弄了一些适合开MC的5900X服务器 配置是2h4g 5M 30+10g 4.8Ghz 需要可以私聊一下,预装了一些基本环境 为什么他开网站10分钟就搞定了::(疑问) 大佬们的博客,黑科技网站怎么搭的? 不是技术复杂,而是流程简单!首先准备: 一:一块钱 二:免备案的虚拟主机、云服务器 三:宝塔/EP系统预装(支持Windows),一键式操作 四:超实惠的价格,高性价比的主机 哪里可以找到? 这边有个秘密通道 https://www.rainyun.cc/?ref=MzE3MzY= 或 百度搜索 "雨云" 注册时填入优惠码 MzE3MzY= 使用该方法,最低只需1元即可拿下一台主机::(真棒)
闲聊杂谈
# 广告
小枫_QWQ
1年前
0
22
3
2023-03-25
Typecho 评论框添加打字特效
方法 首先下载特效JS文件,然后将其放在网站目录某个地方;一般都是统一放在默认CSS文件夹里,方便管理;Xc主题默认CSS文件夹路径:/usr/themes/Xc/assets/css/ 点我下载 下载地址:https://share.weiyun.com/HuXNNyRO 提取码: 2.然后编辑主题文件usr/themes/Xc(这个名字可以根据自己主题名自行更改)/public/comment.php,随便一行添加以下代码; <!--打字特效--> <script type="text/javascript" src="/usr/themes/Xc/assets/css/commentTyping.js"></script>示例图图片 其实现在有很多主题默认支持打字特效了 本文已于 2023/4/16修改 本文已于 2023/9/2修改
网站前后端
# 网站美化
# 网站前端
小枫_QWQ
1年前
0
22
3
2023-03-25
如何给自己的网站添加免费SSL?
首先SSL是什么?它有什么用? 1:认证用户和服务器,确保数据发送到正确的客户机和服务器; 2:加密数据以防止数据中途被窃取; 3:维护数据的完整性,确保数据在传输过程中不被改变。 SSL协议的工作流程: 1:客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。 2:服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。 3:客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。 4:用户端随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤②中的服务器的证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。 5:如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给服务器。 6:如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的CA 是否可靠,发行CA 的公钥能否正确解开客户证书的发行 CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。 7:服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。 8:客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。 9:服务器向客户端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。 10:SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。 理解了SSL对于网站的重用性,那么如何申请? 使用阿里云申请网址:https://www.aliyun.com/product/cas。优点:安全·企业网站首选 缺点: 贵!太贵了! 对于个人小型网站而言,并不推荐建立。当然如果您拥有足够的财力,则可以忽略此建议。 有没有免费的?有当然有而且还不少! 就比如我这个网站用的LookSSL 我这里用雨云演示,其他服务商大同小异 虚拟主机面板是Easypanel 申请教程 访问网站 填入需要申请SSL的网站网址,尽可能选择默认选项。 然后还是尽量默认点击创建! 然后需要注册一个账户(已有账户的可以忽略) 点击控制台,找到我的服务,SSL证书,申请SSL证书 提示需要验证,点击详情,在点击域名验证申请SSL证书 现在跳转到你购买域名的服务商这样填 提示验证成功证明你在域名服务商那边的DNS解析设置成功!验证成功图片 点击证书信息证书信息图片,证书就是证书内容,私钥就是证书密钥内容填好的图片 这样还不算完成,需要到你所购买的虚拟主机或服务器的服务商控制台那边点击SSL证书点击SSL证书图片 11.上传证书上传证书图片 12.绑定域名这样填写图片 这样就完成啦!有什么疑问到评论区
网站前后端
# 网站安全
小枫_QWQ
1年前
2
43
4
2023-03-24
hello world!
如果您看到这篇文章,表示您的 blog 已经安装成功.
typecho
小枫_QWQ
1年前
1
53
1
上一页
1
2
3
易航博客
子辰API
MC萝卜论坛-忠爱于MC
易航博客
子辰聊天室
仙居客