- 博客(204)
- 资源 (6)
- 收藏
- 关注
原创 [转]如何设计一个安全的API接口详解
为了不增加程序员的压力,推荐使用swagger或其他接口管理工具,通过简单配置,就可以在开发中测试接口的连通性,上线后也可以生成离线文档用于管理API。第二次调用,查询redis,如果key存在,则证明是重复提交,直接返回错误。使用redis进行接口调用次数统计,ip+接口地址作为key,访问次数作为value,每次请求value+1,设置过期时长来限制接口的调用频率。随机值主要是为了增加sign的多变性,也可以保护接口的幂等性,相邻的两次请求nonce不允许重复,如果重复则认为是重复提交,响应失败。
2024-06-28 10:36:48
206
原创 【转】5种常见的网络钓鱼攻击以及防护手段
及时部署SSL证书。对于不确定的网站,应第一时间查验网站SSL证书,检查该网站的域名是否与证书中的域名一致,同时检查SSL证书是否由受信任信任的根证书机构颁发。2022 年 Verizon 数据泄露调查报告指出,去年 75% 的社会工程攻击涉及网络钓鱼,仅去年一年就有超过 33 万个账户被网络钓鱼,网络钓鱼占整体社会工程攻击的 41%。不要点击不明链接,直接删除邮件,同时企业应及时部署电子邮件证书,通过HTTPS安全通道帮助企业阻挡诈骗、钓鱼和勒索病毒的攻击,确保用户Web邮件收发过程中的信息安全。
2024-06-24 16:01:59
1693
转载 Cisco VPP插件开发
Cisco VPP插件开发,有需要的朋友可以参考一下。还在初学阶段,如果有误,希望多批评指正。在VPP中,插件可以在程序启动的时候加载,一般我们会往里面加入node,实现一些功能。首先介绍怎么直接重定义硬件接口RX到我们的nodevnet_hw_interface_rx_redirect_to_node(vnet_main,hw_if_index,
2017-03-03 23:20:17
1472
原创 思科VPP源码分析(内存管理)
思科今年开源的vpp项目,在intel开源的dpdk之上,构建的数据包处理框架。dpdk组件已经成功榨干硬件IO性能,剩下的瓶颈落在业务处理部分,其中最关键的又在内存访问优化上。内存优化一句话概括:提高CPU L1,L2,L3 cache命中率。这里将分析vpp内存管理部分源码。vec变长数组(vec_bootstrap.h) len是数组元素个数,不是字节长度。
2016-12-29 23:39:43
1455
转载 dpdk环境搭建之使能额外功能
参考:http://dpdk.org/doc/guides/linux_gsg/enable_func.html#enabling-additional-functionality翻译与理解吧5 使能额外功能5.1 High Precision Event Timer HPET(高精度定时器)5.1.1BIOS 支持 条件:Time Stamp Counte
2016-12-29 23:37:35
1412
转载 VPP NAT测试,不支持VLAN,在NAT下arp学习有问题,需要手动添加;直连接口ICMP不支持,
================================= CARRIER GRADE NAT - NAT44 README ================================= What is implemented:====================* NAT44 UDP, TCP,
2016-12-29 23:35:31
594
转载 cisco vpp NAT VLAN支持
What is implemented:====================* NAT44 UDP, TCP, ICMP protocols* Show and config commands for various parameters for the same* NF9 logging is implemented but is not tested What is
2016-12-29 23:34:53
886
转载 vpp命令总结
create sub BondEthernet0 834创建子接口,tag是834set interface ip table BondEthernet0.834 1将此接口设置在fib 1里set interface ip address BondEthernet0.834 192.168.0.250/24设置接口ipset interface s
2016-12-29 23:34:00
1544
转载 在虚拟机间 NFV 应用上使用采用 DPDK 的 Open vSwitch
概述数据平面开发套件 (DPDK) 可提供高性能的数据包处理库和用户空间驱动程序。 自 Open vSwitch (OVS) 2.4 版 (http://openvswitch.org/releases/NEWS-2.4.0)起,我们将可在 OVS 中使用 DPDK 优化的 vHost 路径。 OVS 自 2.2 版起开始提供 DPDK 支持。将 DPDK 与 OVS 结合
2016-12-29 23:32:51
740
转载 vpp feature node分析总结(snat)
vpp node框架的分析请查看http://blog.youkuaiyun.com/jqh9804理解feature模式最好要理解vpp node框架!在分析vpp代码snat插件时,看到了以feature模式添加节点的方式,于是简单分析了一下feature 节点的apiARC (Argonaut RISC Core) 我把一个feature集合叫做feature类,
2016-12-29 23:31:24
1176
转载 vpp+dpdk 安装与运行
参考:http://blog.youkuaiyun.com/icebluechao/article/details/51208560 (感谢 VPP&DPDK 417538415的群主,欢迎加入此群共同学习)vpp主页:https://wiki.fd.io/view/VPP一、获取vpp:1、Git方式(https://wiki.fd.io/view/VPP/
2016-12-29 23:30:12
2219
1
转载 ovs+dpdk测试总结
参考:https://github.com/openvswitch/ovs/blob/v2.6.1/INSTALL.DPDK.mddpdk-16.07openvswitch-2.6.1安装配置参考上面链接重点关注参数:other_config:pmd-cpu-mask=60 60是配置pmd的个数和与核的关系(这里的意思是核5和核6各跑一
2016-12-29 23:29:27
1501
原创 libevent入门
花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明,让人马上就能上手用的。首先给出官方文档吧: http://libevent.org ,首页有个Programming with Libevent,里面是一节一节的介绍libevent,但是感觉信息量太大了,而且还是英文的-。-(当然,如果想好好用libevent,看看还是很有必要的
2015-10-28 17:22:06
162
转载 linux内核cryto接口的实现以及与openssl的比较
linux内核实现了crypto接口,用于类似IPSec之类要在内核中实现的与操作系统绑定的安全机制,如果不是用于这样的机制,不要使用内核中的crypto接口,总的来说,linux的crypto中最重要的结构体有两个:crypto_tfm和crypto_algstruct crypto_tfm { u32 crt_flags; union { struct
2015-06-17 19:46:42
1118
转载 通过OPENSSL建立证书以及CSR证书签名过程
http://my.opera.com/yuyii/blog/openssl-2通过OPENSSL建立证书以及CSR证书签名过程Thursday, 15. March 2007, 09:35SSLCSR证书签名过程:1。用户先拥有一个自己的密钥openssl genrsa -des3 -out my.key 1024建立密钥,以为1024位加密。
2015-05-20 14:36:41
2341
转载 xargs用途
xargsxargs 命令用途构造参数列表并运行命令。大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);您可以处理输出,使其仅显示文件名,现在您希望将这些名称传递给 ls -l 命令以查看时间戳记。xargs 命令就是用来完成此项
2014-11-15 21:20:35
567
转载 uboot 用 ramdisk 引导linux命令行,u-boot,bootargs,arm
ramdisk的制作:[python] view plaincopy#! /bin/sh rm -rf ramdisk dd if=/dev/zero of=ramdisk bs=1024 count=6144 mkfs.ext2 -F ramdisk gzip ramdisk
2014-11-15 21:17:08
3477
转载 spin_lock浅析
今天我们详细了解一下spin_lock在内核中代码实现,我们总共分析四个项目: 1.spinlock_t的定义分析:首先来看一下spinlock_t的定义:typedef struct { raw_spinlock_t raw_lock;#if defined(CONFIG_PREEMPT) &&defined(CONFIG_SMP) unsig
2014-09-28 23:31:47
557
转载 netpoll浅析
netpoll只是一种框架和一些接口,只有依赖这个框架和接口实现的netpoll实例,netpoll才能发挥它的功能。类似于kernel中的vfs,vfs本身并不会去做具体的文件操作,只是为不同的文件系统提供了一个框架。netpoll不依赖于网络协议栈,因此在内核网络及I/O子系统尚未可用时,也可以发送或接收数据包。当然netpoll能够处理的数据包类型也很有限,只有UDP和ARP数据包,并且只能
2014-09-26 23:45:28
989
转载 点分十进制子网掩码和CIDR的相互转换
#include #include #include #include int main(int argc, char **argv){ if (argc != 4) { printf("usage:test "); return -1; } struct sockaddr_in ipaddr;/
2014-09-11 22:19:10
2447
转载 判断一个IP是否在指定的网络中
/**inspect any ip is in subnet?*/#include #include #include #include int main(int argc, char **argv){ if (argc != 4) { printf("usage:test "); return -1;
2014-09-11 22:18:04
773
转载 Linux进程的睡眠和唤醒简析
1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。当然,一个进程也可以主动释放CPU的控制权。函数 schedule()是一个调度函数,
2014-09-09 00:33:01
1110
原创 SSL双方系统时间不一致导致的SSL连接失败及其解决方案
在产品使用中,实施人员常常报告服务器与客户端无法连接.究其原因是因为客户端机器与服务端机器系统时间不一致.原因在于系统使用了OpenSSL,证书中有一个有效时间段,当客户端或服务器的系统时间不在这个时间段内时SSL会因证书验证失败而无法连接.在实施中系统时间错误是很常见的,因不能上网而未开时间自动同步,bios没电了,客户疏忽等原因都会导致系统时间设置有误.如果连接失败后再查看系统时间设置总是一项
2014-06-01 16:27:50
19175
4
转载 poll&&epoll实现分析(二)——epoll实现
Epoll实现分析——作者:lvyilong316通过上一章分析,poll运行效率的两个瓶颈已经找出,现在的问题是怎么改进。首先,如果要监听1000个fd,每次poll都要把1000个fd 拷入内核,太不科学了,内核干嘛不自己保存已经拷入的fd呢?答对了,epoll就是自己保存拷入的fd,它的API就已经说明了这一点——不是 epoll_wait的时候才传入fd,而是通过epoll_ctl
2014-06-01 11:44:21
129
转载 从select的一个死循环谈epoll的ET模式
最近写程序遇到一个问题,就是发现select监听标准输出的时候遇到了死循环,具体程序如下程序一。程序的意图是每当用户在控制台有任何输入,就输出”hello world!”。程序一:#include #include #include #include int main(int argc, char *argv[]){
2014-06-01 11:43:39
1422
转载 poll&&epoll实现分析(一)——poll实现
0.等待队列在Linux内核中等待队列有很多用途,可用于中断处理、进程同步及定时。我们在这里只说,进程经常必须等待某些事件的发生。等待队列实现了在事件上的条件等待: 希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制全。因此,等待队列表示一组睡眠的进程,当某一条件为真时,由内核唤醒它们。等待队列由循环链表实现,由等待队列头(wait_queue_head_t)和等待队列
2014-06-01 11:42:59
972
转载 彻底学会使用epoll(一)——ET模式实现分析
注:之前写过两篇关于epoll实现的文章,但是感觉懂得了实现原理并不一定会使用,所以又决定写这一系列文章,希望能够对epoll有比较清楚的认识。是请大家转载务必注明出处,算是对我劳动成果的一点点尊重吧。另外,文中如果有不全面或者不正确的地方还请大家指出。也可以私信或者发邮件:lvyilong316@163.com1. ET模式实现分析1.1 ET和LT的实现区别 首先
2014-06-01 11:41:46
1629
转载 linux expect自动登录ssh,ftp...
xpect是一种能够按照脚本内容里面设定的方式与交互式程序进行“会话”的程序。根据脚本内容,Expect可以知道程序会提示或反馈什么内容以及 什么是正确的应答。它是一种可以提供“分支和嵌套结构”来引导程序流程的解释型脚本语言。 shell功能很强大,但是不能实现有交互功能的多机器之前的操作,例如ssh和ftp.而expect可以帮助我们来实现.一,安装expectyum i
2014-05-27 23:11:57
674
转载 Server开发(deamon)进程排他性(文件锁),脚本排他性(fuser)
1、进程排他性: 在linux中进行Server开发:: 第一步、deamon() //调用deamon将进程转后台。 第二步、加文件写锁: fd = open(“filename”,O_CREAT|O_WRONLY,0666); struct flock stL
2014-05-27 22:27:59
584
转载 Mysql热备份总结
一主一从备份1、主服务器授权 授权从服务器可以连接主服务器并可以进行更新。这是在主服务器上进行的,创建一个username和password供副服务器访问时使用。在MySQL命令行下输入 mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.1' IDENTIFIED BY '123456';
2014-05-27 22:10:45
609
转载 Open SSL 常用函数——签名与验证
OpenSSL中的验证是先对原始数据计算摘要, 再对摘要进行私钥加密. 验证的过程是对原始消息计算摘要,解密验证值, 和摘要对比是否一致.如果一致, 说明验证有效:否则,则认为原文或验证值已经被篡改. 函数介绍:因为要先对原始数据计算摘要, 所以在计算摘要时用的函数是计算摘要的函数一样. 最后在结束函数中进行验证或验证. 为了方便描述,OpenSSL对计算摘要函数进
2014-05-25 20:52:05
966
转载 OpenSSL 常用函数——Base64编码及解码和证书操作
Base64编码就是把二进制数据转换为可见的ASCII字符。 Base64解码是相反的过程。主要函数1、 Base64编码初始化函数VoidEVP_EncodeInit(EVP_ENCODE_CTX *ctx);参数ctx:[IN]用于保存Base64编码的的状态。2、 Base64编码Update函数。VoidEVP_EncodeUpdate(
2014-05-25 20:51:23
3534
转载 linux下字符编码转换
一、利用iconv函数族进行编码转换iconv函数族的头文件是iconv.h,使用前需包含之。#include iconv函数族有三个函数,原型如下:(1) iconv_t iconv_open(const char *tocode, const char *fromcode);此函数说明将要进行哪两种编码的转换,tocode是目标编码,fromcode是原编码,该函数返回一个
2014-05-25 20:11:01
724
转载 电子证书 DER vs. CRT vs. CER vs. PEM
证书与编码本至上,X.509证书是一个数字文档,这个文档根据RFC 5280来编码并/或签发。实际上,“X.509证书”经常被用来指代IETF的PKIX(Public Key Infrastructure)证书和X.509 v3 证书标准中的CRL(Certificate Revocation List)。X509 文件扩展名首先
2014-05-25 16:47:02
1283
原创 OpenSSLX509证书操作函数
现有的证书大都采用X。509规范,主要同以下信息组成:版本号、证书序列号、有效期、拥有者信息、颁发者信息、其他扩展信息、拥有者的公钥、CA对以上信息的签名。OpenSSL实现了对X。509数字证书的所有操作。包括签发数字证书、解析和验证证书等。涉及证书操作的主要函数有验证证书(验证证书链、有效期、CRL)、解析证书(获得证书的版本、序列号、颁发者信息、主题信息、公钥、有效期等)。主
2014-05-25 16:32:53
11775
3
原创 一个fwrite的错误
#include "usbkey.h"int BeepInfo(int length,int time){ int nRet; char CMD_BUFFER[CMD_MAX_LEN]={0}; sprintf(CMD_BUFFER,"beep -f 4000 -l %d -d 500 -r %d",length,time); nRet = system(CMD_BUFFER); r
2014-05-22 22:21:39
2639
转载 linux中断处理浅析
近在研究异步消息处理, 突然想起linux内核的中断处理, 里面由始至终都贯穿着"重要的事马上做, 不重要的事推后做"的异步处理思想. 于是整理一下~第一阶段--获取中断号每个CPU都有响应中断的能力, 每个CPU响应中断时都走相同的流程. 这个流程就是内核提供的中断服务程序.在进入中断服务程序时, CPU已经自动禁止了本CPU上的中断响应, 因为CPU不能假定中断服务程序是可
2014-04-29 23:25:18
501
转载 linux网络报文接收发送浅析
对于linux内核来说,网络报文由网络设备来进行接收。设备驱动程序从网络设备中读取报文,通过内核提供的网络接口函数,将报文传递到内核中的网络协议栈。报文经过协议栈的处理,或转发、或丢弃、或被传送给某个进程。网络报文的发送与之相反,进程通过系统调用将数据送入网络协议栈,或者由网络协议栈自己发起报文的发送,然后协议栈通过调用网络接口函数来调度驱动程序,使其将报文传送给网络设备,从而发送出去。本
2014-04-29 23:24:35
4050
转载 关于 OpenSSL“心脏出血”漏洞的分析
原作者:Sean Cassidy 原作者Twitter:@ex509 原作者博客:http://blog.existentialize.com 来源:http://blog.existentialize.com/diagnosis-of-the-openssl-heartbleed-bug.html当我分析GnuTLS的漏洞的时候,我曾经说过,那不会是我们看到的最后一个TLS栈上的严重bu
2014-04-27 18:22:47
601
A Novel RFID Authentication Protocol with Ownership Transfer.doc
2012-11-19
UNP源码 STEVEN
2012-05-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人