刚开始学前端的时候,做了一个页面放在github的gitpage上面,可以通过连接访问网页,为了体验设置密码的快感,我也给我的页面设置了一个密码,但是gitpage只能配置静态页面,所以我网页的密码只能用JS来实现。
<script >a=prompt("管理员用户")
alert(`你好${a}`)
while(a!='admin'){b=prompt("管理员密码")
if (b=="123456")
break;
}
if(b!=("123456"))
{while(b!=("123456")){
b=confirm("密码错误")
}}
else if(b==123456){
alert("欢迎光临此网站")
}
</script>
上面代码实现了第一次输入一个用户名,如果用户名为admin,则直接进入网站,如果用户名为其他,则需要输入密码,如果密码为123456则进入。若不为123456则无法进入。
上线网站后,进入页面按F12,查看网页代码
发现在审查元素中看不到源码,嗯,看起来十分安全。那为什么不用JS来储存密码呢,而是在后端里面用数据库进行储存。下面一段某乎上面的解答。
“每个人都可以看到源码”??
于是我重新打开我的页面进行审查,准备自己破解自己的密码。
破解密码的过程十分简单,简单到我觉得之前用JS储存密码的行为像个zz
按F12,进入network,可以发现我页面的html文件是存在的,而我储存密码的JS代码就在其中。
打开python,对我的网页进行爬取,获得html文件。
import requests
from lxml import etree
url="网址"
resp=requests.get(url=url)
print(resp.text)
在终端中发现了JS代码
果然将账号密码定义在JS中,所有人都可以轻易看到密码
最后就把这个乌龙页面送给大家破解吧,账号不是admin,密码也不是123456,大家自己去试吧