山海不可平
ios大神来上课了!
展开Biu

好激动!好鸡冻!

ios大神直播上课了

还有8年软件开发经验的搜狗工程师黄毅,和10年软件开发经验的华为工程师、架构师

快点我!

有教第三方支付(微信、APPLE Pay)

课程不再是基础班,而是进阶班给有基础的同学一个上升的台阶!

[查看全文]
御安全
Android安全之Https中间人攻击漏洞
展开Biu

Android安全之Https中间人攻击漏洞
Android安全 Https 攻击漏洞 应用加固 御安全 MITM
0X01 概述
HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性
中间人攻击,Man-in-the-middle attack,缩写:MITM,是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
https在理论上是可以抵御MITM,但是由于开发过程中的编码不规范,导致https可能存在MITM攻击风险,攻击者可以解密、篡改https数据。
0X02 https漏洞
Android https的开发过程中常见的安全缺陷:
1)在自定义实现X509TrustManager时,checkServerTrusted中没有检查证书是否可信,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
2)在重写WebViewClient的onReceivedSslError方法时,调用proceed忽略证书验证错误信息继续加载页面,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
3)在自定义实现HostnameVerifier时,没有在verify中进行严格证书校验,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
4)在setHostnameVerifier方法中使用ALLOW_ALL_HOSTNAME_VERIFIER,信任所有Hostname,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
0X03 漏洞案例
案例一:京东金融MITM漏洞
京东金融Ver 2.8.0由于证书校验有缺陷,导致https中间人攻击,攻击者直接可以获取到会话中敏感数据的加密秘钥,另外由于APP没有做应用加固或混淆,因此可以轻松分析出解密算法,利用获取到的key解密敏感数据。
御安全扫描结果:
如下是登陆过程中捕获到的数据:
其中的secretkey用于加密后期通信过程中的敏感数据,由于APP中使用的是对称加密,攻击者可以还原所有的通信数据。
案例二:中国移动和包任意消费漏洞
HTTPS证书校验不严格,可被MITM;
加密算法不安全,可被破解;
关键数据保存在sdcard卡上,可被任意访问;
代码混淆度低,业务逻辑,关键数据泄漏;
消息签名算法比较简单,数据可被修改;
通信数据如下:
Cookie: JSESSIONID=CHGmYSZLTMRAx_1sSEuUP6Q4vmRI9gWiRPM6ANGnH7eZWv0NhErE!221531807
.......
Content-Length: 521
Host: mca.cmpay.com:28710
Connection: Keep-Alive
Cookie: JSESSIONID=CHGmYSZLTMRAx_1sSEuUP6Q4vmRI9gWiRPM6ANGnH7eZWv0NhErE!221531807
Cookie2: $Version=1
<?xml version="1.0" encoding="UTF-8" ?> *本站禁止HTML标签噢* *本站禁止HTML标签噢* *本站禁止HTML标签噢* 866697029909260</IMEI> *本站禁止HTML标签噢* 201603241008185gye5tKk6EPB4iliO7</MCID> *本站禁止HTML标签噢* 2201194</TXNCD><VERSION >4.3.82</VERSION > *本站禁止HTML标签噢* Android_21-1794*1080-HUAWEI GRA_UL10</UA> *本站禁止HTML标签噢* 2009</SOURCE> *本站禁止HTML标签噢* 3</PLAT> *本站禁止HTML标签噢* CAS00016</DEVID> *本站禁止HTML标签噢* 991</SERLNO></HEAD> *本站禁止HTML标签噢* *本站禁止HTML标签噢* 866697029909260</IMEI> *本站禁止HTML标签噢* 10</ENTRY> *本站禁止HTML标签噢* 50:a7:2b:c5:e2:d8</MA
在用户开启免密支付的前提下,结合以上安全问题,可以实现本地或远程攻击,直接盗取和包用户资金,如给任意账号充值等,给用户带来直接经济损失。
0X03 安全建议
1) 建议自定义实现X509TrustManager时,在checkServerTrusted中对服务器信息进行严格校验
2)在重写WebViewClient的onReceivedSslError方法时,避免调用proceed忽略证书验证错误信息继续加载页面
3)在自定义实现HostnameVerifier时,在verify中对Hostname进行严格校验
4)建议setHostnameVerifier方法中使用STRICT_HOSTNAME_VERIFIER进行严格证书校验,避免使用ALLOW_ALL_HOSTNAME_VERIFIER
0X04 参考
https://en.wikipedia.org/wiki/MITM
https://en.wikipedia.org/wiki/HTTPS
http://drops.wooyun.org/tips/3296
(腾讯御安全技术博客)

[查看全文]
sfdfdgfdghtdh
|无爱、亦莫相知
小白急求大神解惑!!!!求QAQ
展开Biu

今天 我们班来了新老师 接替原来的网页老师 教我网页.....

然后 我 把标题文字 加了strong标签。。。。。然后开始写css改变strong标签的样子。。。

#38t问题就出来。。。。。这个老师走过来看到我在写的代码 说 strong标签 用CSS定义 会造成冲突

#49t然后问是什么冲突又貌似不知道的样子。。。上到台上就说

“下面有同学用strong*********会影响搜索引擎,开发搜索引擎的同学就会很注意的********这样做很不好,结构冲突***”

*号是我根本没听清楚的地方,支支吾吾的,不知道说的什么

然后我记得之前我这么做 上个老师说可以这样的

求问 大神 我错在哪里?求指出.....#10t

[查看全文]
liyong0310
递归,程序之美,简介
展开Biu

兔子生兔子”的问题是这样的: 有一只神奇的兔子,它可以靠自己就可以生兔子!但有个时间的规定,它出生后的第三个月开始才可以生一只兔子,但此后的每个月都可以生一只兔子,而且更神奇的是,它所生的兔子竟然跟它有一模一样的魔力!斐波纳契序列

1、1、2、3、5、8、13、21、33、。。。。。。计算机递归编程实现:

*本站禁止HTML标签噢*

*本站禁止HTML标签噢*

*本站禁止HTML标签噢* 函数的递归实例</title>

</head>

*本站禁止HTML标签噢*

<?php

function Fibanacci($num) //定义Fibanacci函数

{

if($num==1 || $num==2) //如果为第一项和第二项

return 1; //返回值为1

else //除1、2外的其他项

return Fibanacci($num-1)+Fibanacci($num-2); //递归调用前两项之和

}

echo "斐波纳契数列的第1项为:";

echo Fibanacci(1);

echo " *本站禁止HTML标签噢* ";

echo "斐波纳契数列的第12项为:";

echo Fibanacci(12);

echo " *本站禁止HTML标签噢* ";

echo "斐波纳契数列的第7项为:";

echo Fibanacci(7);

echo " *本站禁止HTML标签噢* ";

echo "斐波纳契数列的第20项为:";

echo Fibanacci(20);

?>

</body>

</html>

不用递归,就这样解决:

public class Test{

public static void main(String []args){

int <A class=baidu-highlight href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YYmHTknHDYrHR4P1u-m1N-0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtznHDdP1D1nHD1nW01n1TdP1fL" target=_blank>num</A>1=1;

int <A class=baidu-highlight href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YYmHTknHDYrHR4P1u-m1N-0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtznHDdP1D1nHD1nW01n1TdP1fL" target=_blank>num</A>2=1;

int <A class=baidu-highlight href="https://www.baidu.com/s?wd=num&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YYmHTknHDYrHR4P1u-m1N-0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtznHDdP1D1nHD1nW01n1TdP1fL" target=_blank>num</A>=num1+num2;

System.out.print(" "+num1+" "+num2+" "+num);

//前24个月

for(int i=3;i<24;i++){

int num3=num+num2;

num2=num;

num=num3;

System.out.print(" "+num3);

if(i%5==0){

System.out.println();

}

}

}

}

[查看全文]
liyong0310
php函数之自定义函数的参数中默认参数
展开Biu

例子中定义了有两个参数的函数,其中¥color参数有默认值。即调用函数时,如果不传入可选参数$color,将是用默认值“#000000”,即黑色字体;第二次调用使用了“red”参数,所以打印字体为红色的。

*本站禁止HTML标签噢*

*本站禁止HTML标签噢*

*本站禁止HTML标签噢* 函数有默认值参数的使用实例</title>

</head>

*本站禁止HTML标签噢*

<?php

function B_I_text($text,$color="#000000")

//定义有参数函数,其中$color参数有默认值

{

echo "<font color=".$color.">";

//使用颜色参数

echo " *本站禁止HTML标签噢* *本站禁止HTML标签噢* ".$text."</i></b>";

//打印字符并加入粗体斜体效果

echo "</font>";

}

$string="PHP编程是一件很简单的事情"; //定义变量

echo $string; //打印变量

echo " *本站禁止HTML标签噢* ";

B_I_text($string); //调用函数,无$color参数

Echo " *本站禁止HTML标签噢* ";

B_i_text($string,"red"); //调用函数,加入$color参数

?>

</body>

</html>

[查看全文]
liyong0310
php函数还可以有条件调用
展开Biu

例子,一个家长叫小孩去买东西,小孩如何去买东西可以作是一个函数。但是小孩也给家长一个条件,如果给一元辛苦费才去买。即只有满足了给一元钱的条件,才去执行买东西这个函数,也才考虑怎么去买。如果条件根本不存在,那么函数相当于没有定义,当然也不会执行了!

*本站禁止HTML标签噢*

*本站禁止HTML标签噢*

*本站禁止HTML标签噢* 函数参数的使用实例</title>

</head>

*本站禁止HTML标签噢*

<?php

$quest=false;

if ($quest){

function B_I_text($text) //定义有参数函数

{

echo " *本站禁止HTML标签噢* *本站禁止HTML标签噢* ".$text."</i></b>"; //打印字符并加入粗体斜体效果

}

}

$string="PHP编程是一件很简单的事情"; //定义变量

echo $string; //打印变量

echo " *本站禁止HTML标签噢* ";

B_I_text($string); //用实际参数调用函数

?>

</body>

</html>

这个程序执行到调用B_I_text($text)函数时,就报错了!

[查看全文]
liyong0310
for循环语句和数组的一个例子
展开Biu

*本站禁止HTML标签噢*

*本站禁止HTML标签噢*

*本站禁止HTML标签噢* 流程控制综合运用实例</title>

*本站禁止HTML标签噢*

*本站禁止HTML标签噢*

<?php

//首先定义一个数组——图书类型数组

$type[0][0]="学生用书"; //第一个大类别

$type[0][1]="学生教材"; //第一大类中的第一小类

$type[0][2]="教辅用书";

$type[0][3]="课外读物";

$type[0][4]="考试题集";

$type[1][0]="名著"; //第二个大类别

$type[1][1]="中国古典"; //第二大类中的第一小类

$type[1][2]="世界名著";

$type[1][3]="英文原著";

$type[2][0]="考试用书"; //第三个大类别

$type[2][1]="公务员"; //第三大类中的第一小类

$type[2][2]="会计师";

$type[2][3]="医药师";

$type[3][0]="儿童读物"; //第四个大类别

$type[3][1]="看图识字"; //第四大类中的第一小类

$type[3][2]="动漫人物";

$type[4][0]="武侠小说"; //第五个大类别

$type[4][1]="金庸小说"; //第五大类中的第一小类

$type[4][2]="古龙小说";

$type[4][3]="玄幻小说";

echo "<table border=\"1\">"; //打印表格头

for($i=0;$i<count($type);$i++) //外层循环

{

$s=0; //定义循环标识变量

for($j=0;$j<count($type[$i]);$j++) //内层循环

{

if($s%2==0)

echo " *本站禁止HTML标签噢* "; //如果标识为偶数新起一行

$s++; //标识自增

if($j==0) //判断是否为大类别

echo "<td colspan=2 bgcolor=\"#cccc00\">"; //打印大类别的表格

else

echo "<td bgcolor=\"#ccccff\">"; //打印小类别的表格

echo $type[$i][$j]; //输出数据

echo "</td>"; //表格结束

if($j==0) //判断是否为大类别

$s++; //如果为大类别则标识再次自增

if($s%2==0)

echo "</tr>"; //如果大类别一格或小类别两格则表格的地行结束

if($s==(count($type[$i])+1) && count($type[$i])%2==0)//判断小类别项为奇数的情况

echo "<td bgcolor=\"#ccccff\"> </td></tr>";//在后面添加空表格

}

}

?>

</body>

</html>

这里的循环语句中有个S变量,起到了很关键的作用,算是很巧妙!

[查看全文]