- 使用正则获取src属性内容 :
<img class="foot_icon" src="http://file.32hike.com/images/wachat/v4/foot_icon.png" width="100">
<?php
$s = '<img class="foot_icon" src="http://file.32hike.com/images/wachat/v4/foot_icon.png" width="100">';
$patten = '/(.+src=\")([a-zA-Z0-9_\/\.:]+)/';
preg_match($patten,$s,$matches);
print_r($matches[2]);
-
php 捕获异常的方法
try{}catch{}
-
你知道哪些缓存技术?说明优缺点
静态缓存 : 将数据流改变不大的, 大量被请求的页面加入缓存中
编译缓存 : 将代码编译成中间码, 下一次执行代码直接跳过编译过程; 编译只执行一次
模板缓存 : smarty
数据库缓存 : redis / memcache
内容触发缓存 / 时间触发缓存
-
php有哪些防止xss攻击的方法?
xss攻击 : 通过插入恶意代码, 实现对客户机的控制
分类 :
- 非持久型攻击 : 对单次页面产生影响 (执行恶意脚本)
- 持久型攻击 : 攻击数据存放在数据库, 伴随服务持续产生影响 (向攻击者服务器发送session信息)
-
如何进行联表查询?
mysql 联表查询方法有left join , right join , inner join , union , union all ,关键字有using 和 on
首先创建两张表并定义各个表所需字段
根据需要在第一部中选择合适的查询方法, 获取对应的数据集合; 若使用join语法可用 on 或者 using 增加过滤条件
使用select获取所需查询字段, 根据实际场景选择是否使用where等过滤条件
- 用 js 写一个可传入两个参数(最小值和最大值), 并返回两个参数之间随机整数的方法
var log = console.log;
var tmp = ramdon(0,3);
log(tmp);
/*返回输入范围内随机整数*/
function ramdon(min,max){
var tmp = Math.round(Math.random()*10);
if(tmp<min || tmp>max)tmp = ramdon(min,max);
return tmp;
}
- 有url (http://opc.like.com/h5/pay/order/signup?mixed_params=a%3D6&ft=periods&city=12&fhid=) , js如何解析获取该url的请求参数?
- 若该url为当前地址, param = window.location.search
- 使用正则
var log = console.log;
var url= "http://opc.like.com/h5/pay/order/signup?mixed_params=a%3D6&ft=periods&city=12&fhid=";
// 获取以?开头的不包含?的的字符串
var param = (/(?<=\?).+/ig).exec(url)[0];
log(param);
- 使用函数split
var log = console.log;
var url= "http://opc.like.com/h5/pay/order/signup?mixed_params=a%3D6&ft=periods&city=12&fhid=";
var param = (url.split('?')[1]).split('&');
log(param);
js 正则 RegExp 对象(exec), search
- 常见的web攻击方式有哪些, 如何应对?
xss -- 过滤用户输入的所有特殊字符 / http头指定文件类型
sql注入 -- 使用预编译语句 / 对存储到数据库的特殊字符进行转义 / 上线后避免在页面输出sql错误信息, 防止攻击者利用提示进行注入攻击
ddos(发送大量请求是使服务器瘫痪) -- 使用网络请求日志 / 对可疑ip进行请求频率限制 / 增加验证码机制 / 在nginx 启用 limit_req模块 / 启用防火墙 / 关闭不需要的端口
csrf(跨站请求伪造) -- 使用 token, 每次向服务器发送请求携带token参数, 服务器验证通过再执行请求