Chrome 关闭密码生成和开启标签页静音

自动密码生成(Automatic password generation)

打开 Chrome 的实验室页面——chrome://flags

搜索 Automatic password generation ,把它选为 Disbale。

开启标签页静音

在 Chrome 浏览器现在的版本中,网页播放声音是 tab 上的小喇叭是无法点击直接关闭声音的,而且在右键菜单中仅有“将这个网站静音”的选项,之前版本的静音标签页功能不见了。

只能通过安装插件来解决,名字叫做 Tab Muter

安装后会在任务栏上有一个按钮,可以静音标签页。

树莓派打印服务器(Samsung M2626)

以树莓派默认系统 Raspbian 和三星 M2626 打印机为例。

安装 CUPS

1
2
sudo apt-get update
sudo apt-get install cups

将树莓派默认用户 fan 添加到用户组 lpadmin 里

1
sudo usermod -a -G lpadmin pi

配置 cupsd.conf

最好修改前备份下配置文件(可以跳过)

1
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak

修改配置文件cuopsd.conf

1
sudo vim /etc/cups/cupsd.conf

一共需要改四个地方:

  • Listen localhost:631 把中间 localhost: 去掉,只保留 631
  • 在三个 </Location> 前面加上 Allow @LOCAL,让网络用户有管理权限。

重启CUPS服务

1
sudo service cups restart

添加打印机

在浏览器中输入https://树莓派IP地址:631/ 打开管理页面添加打印机。

点击上面的 Administration 选项卡,输入树莓派的账号和密码登录。

再点 Add Printer 按钮来添加打印机。

在 Local Printers 中选择打印机,这里是 Samsung M262x M282x Series,选定后点击 下方的 Continue。

设定打印机名字,因为在 Windows 上添加打印机时要通过链接添加,所以设的短一点能更方便。还要把下面的 Share This Printer 勾选。

接下来选择驱动程序,而我的打印机不在这个支持列表里。不过都是三星的打印机,使用别的驱动问题也不大,我就选择了 ML-2250 的驱动。

点击下面的 Add Printer 按钮完成添加。

接下来设置默认属性,基本上默认就可以了。

到这里,打印机就添加完毕了。

点上方的 Printers 选项卡,找到自己的打印机,在下拉菜单中点击 Print Test Page 来打印测试页。

最后一步,设置成服务器默认打印机:

写 Database 大作业的一些备忘

获取当前页面的 URL

传入的 URL 为:http://localhost:8080/MiHuoXiTong_war_exploded/test.jsp?name=123

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String url=request.getScheme()+"://"+ request.getServerName()+request.getRequestURI();
String url=request.getScheme()+"://"+ request.getServerName()+request.getRequestURI();
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String name = request.getParameter("name");//用request得到
String URI = request.getRequestURI();
String Pa = request.getQueryString(); //得到参数
String aa =URI.substring(URI.lastIndexOf("/")+1);

System.out.println(url);
System.out.println(path);
System.out.println(basePath);
System.out.println(name);
System.out.println(URI);
System.out.println(Pa);
System.out.println(aa);

输出:

1
2
3
4
5
6
7
http://localhost/MiHuoXiTong_war_exploded/test.jsp
/MiHuoXiTong_war_exploded
http://localhost:8080/MiHuoXiTong_war_exploded/
123
/MiHuoXiTong_war_exploded/test.jsp
name=123
test.jsp

js 刷新当前页面

1
location.reload();

js 后退上一页

1
history.go(-1)

把 String 转为 ing

1
2
String itemIdS = request.getParameter("ID");
int itemId = Integer.parseInt(itemIdS);

判断 String 是否为数字

1
2
3
4
public static boolean isNumeric(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}

js 2000 毫秒后刷新页面

1
2
3
setTimeout(function(){  //使用  setTimeout()方法设定定时2000毫秒
window.location.reload();//页面刷新
},2000);

js post

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function (e) {
$.post("addItemAction.jsp",
{
item_id: $("#item_id").val(),
item_name: $("#item_name").val(),
price: $("#price").val(),
category: $("#category").val(),
description: $("#description").val(),
});

//再 addItemAction.jsp 接受
String itemIdS = request.getParameter("item_id");
...
...

JSP 使用 URL 传递两个参数

多个参数使用 & 链接

1
<a href="wad_del.jsp?p1=<%=你的变量值%>&p2=<%=你的变量值%>" ></a>

js弹出消息对话框(alert)的几种方式

1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
//直接弹出,无取消按钮
alert("alert");
//有取消按钮
confirm("Confirm");
//弹出输入框
prompt("prompt");
//未知
document.write("document.write");
//写入控制台
console.log("console.log");
</script>

js 调用后端方法?

??忘记对不对了

Java Web UI 框架

Aliceui

Alice 是支付宝的样式解决方案,是一套精选的基于 spm 生态圈的样式模块集合,是 Arale 的子集,也是一套模块化的样式命名和组织规范,是写 CSS 的更好方式。包括了一套通用样式模块库,一个模块化样式构建规范,一组帮助书写和组织样式的工具,以及产出更多 Alice 模块和样式库的完善方案。

官网地址:http://aliceui.github.io/

Amazeui

HTML5 跨屏前端框架
Amaze UI 以移动优先(Mobile first)为理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流。

官网地址:http://amazeui.org/

SUI

SUI是一套基于bootstrap开发的前端组件库,阿里巴巴共享业务事业部UED团队的作品。

官网地址:http://sui.taobao.org/

FrozeUI

FrozenUI 是一套基于移动端的UI库,轻量、精美、遵从手机 QQ 设计规范
适用于使用手Q规范设计的Web页面,而针对非手Q规范的页面,可通过修改变量定制界面主题。

官网地址:http://frozenui.github.io/

uiKit

uiKit是一款轻量级、模块化的前端框架,可快速构建强大的web前端界面。

官网地址:http://www.getuikit.net/

WeUi

WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。

GitHub 地址:https://github.com/weui/weui
官网地址:https://weui.io/

Layui

经典模块化前端框架,由职业前端倾情打造,面向所有层次的前后端开发者,零门槛开箱即用的前端UI解决方案。

官网地址:http://www.layui.com/

GitHub 多账户 SSH Keyy

生成并添加第一个 SSH Key

在 git bash 中执行

1
ssh-keygen -t rsa -C "XXXXXX@XXX.com” -f ~/.ssh/github_1_id-rsa

会在~/.ssh / 目录下生成 id_rsa 和 id_rsa.pub 两个文件
用文本编辑器打开 id_rsa.pub 里的内容,在 Github 中添加 SSH Key

生成并添加第二个 SSH Key

1
ssh-keygen -t rsa -C "XXXXXX@XXX.com” -f ~/.ssh/github_2_id-rsa

在. ssh / 下创建 config 文件

内容如下:

1
2
3
4
5
6
7
8
9
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

Host my.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/my

现在就以下种情况给出不同的做法

本地已经创建或已经 clone 到本地:

打开. git/config 文件

1
2
3
4
#更改[remote "origin"]项中的url中的
#my.github.com 对应上面配置的host
[remote "origin"]
url = git@my.github.com:itmyline/blog.git

clone 仓库时对应配置 host 对应的账户

1
2
#my.github.com对应一个账号
git clone git@my.github.com:username/repo.git

使用腾讯企业邮箱配置 Discourse 邮件发送服务器


1
cd /var/discourse

切换目录到 Discourse 安装目录

1
nano containers/app.yml

编辑编辑 Discourse 配置文件

将邮件配置如下填写,在填写时要将多余的注释符号 # 去掉

1
2
3
4
5
6
7
DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
DISCOURSE_SMTP_PORT: 587 # (use 587, discourse not support ssh)
DISCOURSE_SMTP_USER_NAME: mail@example.com # (your email address)
DISCOURSE_SMTP_PASSWORD: password # (your email password)
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_ENABLE_START_TLS: true

完成后重新 rebuild Discourse

1
sudo ./launcher rebuild app

完成后 Discourse 还是无法发送邮件,无法创建管理员账户进入系统。需要使用命令行激活管理员账户

1
2
./launcher enter app
rake admin:create

运行后会提示输入邮箱和密码,遇到提示按 Enter 确认即可。

使用账户名和密码登陆管理后台,将设置中的 notification email 改成与 DISCOURSE_SMTP_USER_NAME 一致即可。

Aircrack-ng Aireplay Deauthentication Attack

简介

Deauth 是通过发送一份伪造的取消认证报文让客户端以为路由器需要让自己断开链接,断开后客户端会尝试重新与路由器握手,这时候就可以进行抓包等操作。常在下列情形中用到:

  • 用来发现隐藏的 ESSID
  • 用来捕捉 WPA/WPA2 握手包
  • 产生 ARP 请求(断开连接时,Windows 会刷新 ARP 缓存)
  • 不断发送 DeAuth 会使目标 Wi-Fi 无法连接

当然,没有用户和接入点连接时,这种攻击方式就不能使用了。

实现过程

开启无线网卡的监控模式

在终端执行:

1
airmon-ng

查看当前设备上可用的无线网卡。

这里显示设备中有一块名为 wlan0 的无线网卡。

在终端执行如下代码使 wlan0 进入监控模式:

1
airmon-ng start wlan0

执行成功之后网卡接口变为 wlan0mon;可以使用 ifconfig 命令查看。

查看 Wi-Fi 网络

1
airodump-ng wlan0mon

上面列出了周围的 Wi-Fi 和它们的详细信息,包括信号强度、加密类型、频道等。

要记住要攻击 Wi-Fi 的频道号(CH)和 BSSID。

之后按 Ctrl + C 结束。

调整网卡监听信道到目标所在信道

1
airmon-ng start wlan0mon X

上面命令中 “X” 为要攻击目标 Wi-Fi 所在的信道。

常见情况下未进行监听信道设置的时候进行攻击会出现 No such BSSID available,这是因为在 aireplay-ng 进行 Deauth 攻击时,只会在 wlan0mon 监听的信道内寻找目标,所以在进行攻击前要将网卡监听信道调整到目标 MAC 所在信道。

Deauth 攻击

1
aireplay-ng -0 1 -a 00:6B:8E:93:81:6C -c 00:0F:B5:AE:CE:9D wlan0mon

其中:

  • -0 表示解除认证攻击
  • 1 是我们发送断开包的数量,0 为无限发送
  • -a 00:14:6C:7E:40:80 是目标的 MAC 地址(BSSID)
  • -c 00:0F:B5:34:30:30 是我们所要攻击用户的 MAC 地址,省略为攻击该 Wi-Fi 所有连接的设备
  • wlan0mon 表示 monitor 接口