javase
未读java中级
异常处理
导致程序的正常流程被中断的事件,叫做异常
常见手段: try catch finally throws
try catch
将可能抛出FileNotFoundException 文件不存在异常的代码放在try里
2.如果文件存在,就会顺序往下执行,并且不执行catch块中的代码
\3. 如果文件不存在,try 里的代码会立即终止,程序流程会运行到对应的catch块中
\4. e.printStackTrace(); 会打印出方法的调用痕迹,如此例,会打印出异常开始于TestException的第16行,这样就便于定位和分析到底哪里出了异常
123456789101112131415161718192021222324package exception; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException; public class TestException { public static void main(Stri ...
javase
未读java basic
1.面对对象
1.类和对象
属性,即可以设置的一些属性
方法即可以进行的一些行为
2.变量
java中有八种基本类型,这八种都是关键字,在设置变量时不能够用这些关键字。
这八种分别是:
整型 (4种)
字符型 (1种)
浮点型 (2种)
布尔型(1种)
1.整型
类型
缺省值
长度
范围
byte
0
8
-128~127
short
0
16
-32768~32767
int
0
32
-2147483648~2147483647
long
0
64
-9223372036854~9223372036854
2.字符型
char 类型用于存放一个字符,值用单引号表示(双引号表示字符串)
3.浮点型
注意: 默认的小数值是double类型的
所以 float f = 54.321会出现编译错误,因为54.321的默认类型是 double,其类型 长度为64,超过了float的长度32
在数字后面加一个字母f,直接把该数字声明成float类型
float f2 = 54.321f,
4.布尔型
布尔型表示真假,其长度为1
true f ...
python
未读python
变量和类型
常见的数据类型:
整型:int类型支持二进制八进制十六进制的转换
浮点型:
字符串类型:以单引号和双信号引起来的任意文本,字符串还有原始字符串表示法,unicode表示法等。
布尔型;只有True False两种值(注意大小写)
复数型:这个不常用
变量命名
硬性规则:
变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。
大小写敏感(大写的a和小写的A是两个不同的变量)。
不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。
PEP 8要求:
用小写字母拼写,多个单词用下划线连接。
受保护的实例属性用单个下划线开头(后面会讲到)。
私有的实例属性用两个下划线开头(后面会讲到)。
数据类型的转换:
int():将一个数值或字符串转换成整数,可以指定进制。
float():将一个字符串转换成浮点数。
str():将指定的对象转换成字符串形式,可以指定编码。
chr():将整数转换成该编码对应的字符串(一个字符)。
ord():将字符串(一个字符)转换成对应的编码(整数)。
...
c语言
变量和数据类型
数据类型(data type)
数据是放在内存中的,变量是 给这块内存起的名字,有了变量就嫩找到并使用这份数据。
字符型 char 1
短整型 short 2
整型 int 4
长整型 long 4
单精度浮点型 float 4
双精度浮点型 double 8
无类型 void
(最基本的数据类型,数字为数据的长度)
数据类型只在定义变量时指明,而且必须指明;使用变量时无需再指明,因为此时的数据类型已经确定了。
数据的输出
我们可以使用puts来输出字符串,puts只能用来输出字符串。
而printf可以输出许多类型的数据.
1printf("%d",a);
其中%d叫做格式控制符,格式控制符均以%开头,后面跟其他的字符
%d 十进制
%c 字符
%s 字符串
%f小数
puts函数将较长的字符串可以分割成几个短的字符串
1puts("s" "s" "s");
C语言当中的整数
int 一般占用四个字节,共计32bit,其数字非常大。
可以用short long让其内存占用更少或者 ...
某年某月某日
12345678910111213141516#include <stdio.h>void main(){ int year,month,day; scanf("%d %d",&year,&month); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 4: case 6: case 9: case 11: day=30; break; case 2: day=(year%4==0&&year%100!=0||year%400==0)?29:28; } printf("%d年%d月有%d天",year,month,day);}
判断素数(函数)
123456 ...
C语言常见代码汇总
判断一个年份是闰年
12345678int isleapyear(int year){if ((year%4==0&&year%100!=0)||year%400==0){return 1;}else{return 0;}}
计算两个数的最大公约数(欧几里得算法)
123456int gcd(int a,int b){if (b==0){return a;}return gcd(b,a%b);//递归计算最大公约数}
二进制数转换为十进制数
123456789int binarytodecimal(int binary){while(binary>0){int reminder=binary%10;//获取最后一位数字decimal+=reminder*base;//将最后一位数字乘以对应权重加到结果中binary/=10;//去掉最后一位数字base*=2;//每次权重乘以2}return decimal;//返回 ...
c语言期末复习辅助
知识点总复习
1.程序结构是三种,顺序结构,循环结构,选择结构,
2.读取程序都需要在main()函数入口,然后从上往下读,直到主函数结束。
3.计算机中的数据是以二进制的形式保存的,存放的位置就是他的地址,地址是十六进制的
4.运算符的优先级:单目运算符>双目运算符>三目运算符,算术运算符>关系运算符>逻辑运算符>赋值运算符,逗号运算符的级别最低。
常见基础知识
普遍
1.标识符必须有字母数字下划线组成,并且第一个字符必须为字母或者数字。
2.不能用main define sacnf等作为标识符
3.c语言的八进制要以0开头,十六进制要以0x开头。
4.小数的合法写法:1.0可以写成1 0.1可以写成.1
5.e前e后必须有数,e后必为整数。
6.long int x 表示x是长类型 unsignde int x 标识x是无符号类型
表达式:
1.算数表达式:
”/“两边都是整形,那么结果就是一个整数(四舍五入)
”/“如果有一边为小数,那么结果就是小数
”%“注意是取余数,两边的要求是整数。
2.赋值表达式
不能连续赋值
赋值的左边 ...
File Inclusion 文件包含
简介
文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
CSRF(跨站请求伪造)
简介
CSRF(跨站请求伪造),全称为Cross-site request forgery,简单来说,是攻击者利用受害者尚未失效的身份认证信息,诱骗受害者点击恶意链接或含有攻击代码的页面,在受害者不知情的情况下以受害者的身份像服务器发起请求,从而实现非法攻击(改密)。
low
源代码
1234567891011121314151617181920212223242526272829303132<?phpif( isset( $_GET[ 'Change' ] ) ) { // Get input//获取两个输入框的密码 $pass_new = $_GET[ 'password_new' ]; $pass_conf = $_GET[ 'password_conf' ]; // Do the passwords match?//查看两次输入的是否一致 if( $pass_new == $pass_conf ) { // They d ...
简介:
Command Injection(命令注入),就是指通过提交一些恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。
Low
源代码
12345678910111213141516171819<?phpif( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; // 确定操作系统并执行ping命令 if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' . $target ) ...
Brute Force 暴力破解
low
1.手工注入 万能密码
admin ’ or ‘1’='1
2.直接bp爆破
welcome to dvwa
Medium
这个跟low差不多 只是增加了mysqli_real_escape_string()函数 这个函数会过滤一些特殊的符号 抵御一部分sql注入
ps:mysqli_real_escape_string()函数的作用是对字符串中的特殊字符进行转义,以防止SQL注入攻击。它将字符串中的特殊字符(如单引号、双引号、反斜杠等)转义为它们的转义序列,从而使其在SQL语句中不被误解为SQL命令的一部分。这样可以确保用户输入的数据不会破坏SQL查询语句的结构,同时保护数据库的安全性。
High
这一关的区别在于token
注:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只 ...
XSS攻击
XSS的了解
跨站脚本攻击(Cross-site scripting,XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。若受害者运行这些恶意代码,攻击者就可以突破网站的访问限制并冒充受害者。根据开放式 Web 应用安全项目(OWASP),XSS 在 2017 年被认为 7 种最常见的 Web 应用程序漏洞之一。
如果 Web 应用程序没有部署足够的安全验证,那么,这些攻击很容易成功。浏览器无法探测到这些恶意脚本是不可信的,所以,这些脚本可以任意读取 cookie,session tokens,或者其他敏感的网站信息,或者让恶意脚本重写HTML内容。
在以下 2 种情况下,容易发生 XSS 攻击:
数据从一个不可靠的链接进入到一个 Web 应用程序。
没有过滤掉恶意代码的动态内容被发送给 Web 用户。
恶意内容一般包括 JavaScript,但是,有时候也会包括 HTML,FLASH 或是其他浏览器可执行的代码。XSS 攻击的形式千差万别,但他们通常都会:将 cookies 或其他隐私信息发送给攻击者,将受害者重定向到由攻击者控制的网页,或 ...