因为是web的聊天系统,聊天记录一般会存在html的dom里,存在客户端,每次打开还能看到聊天的历史记录,以前腾讯的web qq就是这么实现的
今天在wooyun里看到一个有意思的漏洞。说它有意思,第一是思路很特别,当然也是因为安全做的很low,第二里面使用的python的poc有个小细节,特此分享一下。网站叫Fenby网,主要是为了pythoner在线学习的,它有一个在线练习的功能,可以输入代码,然后执行,测试运行结果。。。于是楼主就注册了一个账号,URL:http://www.fenby.com/course/units/xxxx 然
之前我已经在wooyun和91ri上发表了这篇文章,今天转到51cto上。。。默认的ssh日志是不带密码记录功能的,现在想把登录密码记录下来,这样就可以搜集黑客的ssh爆破字典了,从而可以反扫回去。 具体方法就是给默认的ssh源码打个patch #wget http://openbsd.cs.toronto.edu/pub/OpenBSD/OpenSSH/portable/openssh
之前那篇文章是flask+redis的,如果用flask+mysql怎么实现呢?创建数据库:CREATE DATABASE `web12306` DEFAULT CHARACTER SET utf8;创建表:CREATE TABLE `web12306` (
什么是ElasticSearch?它是一种分布式的、实时性的、由JAVA开发的搜索和分析引擎。2014年,曾经被曝出过一个远程代码执行漏洞(CVE-2014-3120),漏洞出现在脚本查询模块,由于搜索引擎支持使用脚本代码(MVEL),作为表达式进行数据操作,攻击者可以通过MVEL构造执行任意java代码,后来脚本语言引擎换成了Groovy,并且加入了沙盒进行控制,危险的代码会被拦截,结果这次由于
C语言实现cgi webshell#include <stdio.h> #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h&
本来想调用阿里的ip接口查询ip归属地。结果发现阿里的接口非常不给力,主要是不准确,不过是免费的且有地区和ISP的信息。以下是实现代码# -*- coding: utf-8 -*- import requests def checkip(ip): URL = 'htt
flask是一个很小巧很方便的webframe,之前一直用django现在用尝试用flask感觉不错,准备用这个框架开发新的平台,首先就要有用户登录页面,用flask可以这样实现:run.pystatictemplates前端就用bootstrap展示,login.html<!DOCTYPE html> <html lang="en"> &n
最近在用python的flask框架写东西,顺便把httponly的作用拿出来说下,主要是防止XSS漏洞攻击。以下hello.py都是用flask写的代码里加入两个cookie值,其中一个带有httponly标签,另一个不带httponly标签。index.html里就是一句简单的XSS测试js代码<html> <h1>This page contain
网上有很多关于通过MSM(memcached session manager)实现memcached共享session的文章,但是很多都是东拼西凑,误导别人。正巧最近有一个地方用到,特此总结一下。 MSM支持tomcat6,tomcat7,tomcat8,MSM支持两种模式:sticky sessions(粘性session
网站最近在做年中大促,其中图片业务使用的是nginx集群,为了满足大促时负载规模需要扩容,我们现在使用的自动化运维工具是基于saltstack的,自动化部署后有个小需求,想把nginx编译安装时的参数重定向备份到一个文件里,查看编译参数使用-V,这里说下大V和小v的区别,-v : show version and exit 查看版本后退出-V : show version and configur
判断/home下有没有文件aaa.txt,如果存在则提示错误,如果文件不存在则创建且文件最终权限为644。#include<stdio.h> #include<fcntl.h> int main(void){ int fd; fd = open("/home/aaa.txt",O_WRONLY | O_CREAT&
nginx代码非常的优秀,之前已经介绍了sendfile的使用来实现“内存零拷贝”,今天我又理解了一下writev函数的使用,以nginx-1.6.0为例,在src/os/unix/ngx_writev_chain.c的113行,如下图:可以man 2 writev看下函数的概念(与writev相对应的还有一个readv)writev是读取多个不连续的buffer然后集中写入。#include&n
Linux kernel 2.2之前,(如图)读写数据基本都是使用read系统调用和write系调用,以nginx来说如果一个请求建立,从磁盘的文件到网络连接之间会通过硬件(DMA)---内核层---用户层多次读写系统来完成文件数据的复制传输:从内核层用read系统调用读到用户层,再从用户层用write系统调用写到内核层,每一次用户层到内核层的进行一次上下文转换,这种代价是非常昂贵的。甚至在没有数
网站需要根据不同的源地址转发到不同的二级站点,可以通过ngx_http_geoip_module模块实现。nginx默认不编译这个模块,需要编译时开启--with-http_geoip_module编译选项。ngx_http_geoip_module 模块创建变量,使用预编译的MaxMind数据库解析客户端IP地址,得到变量值,然后根据变量的值去匹配判断,所以要模块依赖MaxMind GeoIP库
最近在配合其他团队对网站进行seo方面的优化,其中建议需要对url进行大量301修改,基本就是将原来的较长的url重新定向到一个比较短的url,提高对搜索引擎的友好程度,如果发现你的网页从一个很精简的url被定向到一个冗长的url上,可能是被劫持了,对于google比较智能的搜索引擎,它还会接受之前的那个精简的,因为它更加友好化。今天就把这个http的301返回码分析一下。HTTP协议301返回码
最近在看《深入理解nginx》这本书,学着写一个nginx的模块。从官方网站www.nginx.org下载nginx-1.6.0版本wget http://nginx.org/download/nginx-1.6.0.tar.gz解压[root@localhost ~]#tar xzvf nginx-1.6.0.tar.gzcd nginx-1.6.0[root@localhost n
今天用C语言实现一个Memory负载的压力测试程序.#include <stdio.h>
近期遇到几例服务器被SYN攻击的问题,今天详细分析一下SYN flood攻击的原理,首先简单回顾一下TCP/IP三次握手的过程。1. Host A 发送一个TCP SYNchronize 包到 Host B2. Host B 收到 Host A的SYN3. Host B 发送一个 SYNchronize-ACKnowledgement4. Host A 接收到Host B的 SYN-ACK5. H
环境RHEL6.4 wget http://www.linux-pam.org/library/Linux-PAM-1.1.1.tar.gz tar xzvf Linux-PAM-1.1.1.tar.gz主要修改 Linux-PAM-1.1.1/modules/pam_unix/pam_unix_auth.c/* verify the password of this user */
介绍一个生产环境中memcached的使用场景,主要是memcached存储关系型数据库mysql的查询结果,比如网站的下载排名等,这种查询每次从关系型数据库中查询,会增加磁盘的I/O开销,而这个排名不需要实时的更新,所以我们把这个结果存在memcached中,memcached是把数据序列化存放在内存中,我们可以设置超时时间,然后周期性的从关系型数据库查询新的结果更新到memcached中。我用
测试环境:CentOS6.4 32位内核版本:2.6.32-358.el6.i686 yum --releasever=6.4 updateyum install -y systemtapdebuginfo-install $(rpm -qf /lib/security/pam_unix.so)to
问题:写入1MBi大小数据到文件里,1次写入1K共写1024次和1次性写入1M仅写1次的速率差异是多大?哪个更快?为什么呢?不妨测试一下:1MBi文件,一次性写入1MBi#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <
安装redis#wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz #tar xzf redis-2.6.14.tar.gz #cd redis-2.6.14 #make执行make的时候报错,具体报错信息如下:zmalloc.o: In function `zmalloc_used_memory': /usr/local/redi
Q1:获取1-9的顺序数字shell方法一:foriin`seq19`;doecho$i;done类似seq19或者seq91 2 3 4 5 6 7 8 9shell方法二:for((i=1;i<=9;i++));doecho$i;done类似foriin{1..9};doecho$i;done1 2 3 4 5 6 7 8 9python方法三:脚本内容#!/usr/bin/python
线上某业务需要对日志信息入库并进行分析最后呈现在管理后台上。某天突然发现后台没有前一天的分析数据。首先认为是java程序问题,于是查看应用程序日志,发现数据缺失的那天应用程序日志也没有记录,很是奇怪。接着手动执行jar包,本想看屏幕输出的报错信息,结果程序刚启动运行,执行了3条入库的sql语句(insert)后便卡住不动了,反复尝试了2-3次都是这种情况,接着怀疑是远程的mysql数据库问题导致无
以前我写过一篇如何伪装nginx的版本防止web服务器被入侵的博文,之后就有朋友问我,apache是否也有同样的方法,答案是肯定的。今天写这篇回答这个问题吧。下载apache源码,我用的是2.2.25版本解压文件apache源码包tar xzvf httpd-2.2.25.tar.gz修改源码文件vim httpd-2.2.25/include/ap_release.h这是一个带有apache版本
最近一直在休假,没有写博客,转眼十一还剩最后一天,时间真的很快。今天想谈谈数据库的安全问题。 对于数据库的安全问题,首先,重要的生成库千万不能放在公网上,一旦被黑客入侵后果不堪设想,轻则数据丢失,重则被脱裤(整库被打包导出),如果恰恰又以明文存储了用户的密码,那么就太可怕了,去年轰动一时的某几个大型网站的用户数据泄漏事件都是因为明文的方式存储了用户的密码。其次是大量的数据库弱口令问题存在,造成
今天想对一个问题进行分析和讨论,就是关于爬虫对网站页面爬取的问题,有些网站通过爬虫去采集其它的网站页面信息作为己用,大量的爬取行为会对web服务器有比较性能有影响,主要的表现就是会变得很慢。对于如何防止网站被爬取,我想从以下几种方法去分析:1.基于程序本身去防止爬取:作为爬虫程序,爬取行为是对页面的源文件爬取,如爬取静态页面的html代码,可以用jquery去模仿写html,这种方法伪装的页面就很
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号