ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>依依综合在线,中文一区一区三区高中清不卡免费,亚洲精品aahttp://blogjava.net/fanjs2000/category/50500.htmlzh-cnSun, 10 Jul 2016 07:15:53 GMTSun, 10 Jul 2016 07:15:53 GMT60AntiSamy防止xssæ”Õd‡»http://www.aygfsteel.com/fanjs2000/archive/2016/07/08/431129.html猪眼ç?/dc:creator>猪眼ç?/author>Fri, 08 Jul 2016 03:44:00 GMThttp://www.aygfsteel.com/fanjs2000/archive/2016/07/08/431129.html

可以使用AntiSamy防范XSS跨站脚本æ”Õd‡»



常用XSSæ–¹å¼åˆ†äØ“ä»¥ä¸‹å‡ ç§åQ?/h1>

1.      è¾“入框中直接输入恶意脚本åQŒå¦‚åQ?/p>

><script>alert(document.cookie)</script>

2.      è¾“入框中输入html标签åQŒåœ¨æ ‡ç­¾ä¸­åµŒå…¥æ¶æ„è„šæœ¬ï¼Œå¦‚srcåQŒhrefåQŒcss style½{‰ã€?/p>

<IMG SRC="javascriptåQšalert('XSS');">; <BODY BACKGROUND="javascriptåQšalert('XSS')"> <STYLE>li {list-style-image:url("javascriptåQšalert('XSS')");}</STYLE><UL><LI>XSS</br>

3.      ž®†æ¶æ„è„šæœ¬æ³¨å…¥åœ¨event事äšg中,如onClickåQŒonBluråQŒonMouseOver½{‰äº‹ä»¶ã€?/p>

<a onmouseover="alert(document.cookie)">xxslink</a>

4.      åœ¨remote style sheetåQŒjavascript中,å¦?/p>

<LINK REL="stylesheet"HREF="javascriptåQšalert('XSS');">


]]>高用户下记录¾pȝ»Ÿhttp://www.aygfsteel.com/fanjs2000/archive/2013/11/23/406708.html猪眼ç?/dc:creator>猪眼ç?/author>Sat, 23 Nov 2013 03:16:00 GMThttp://www.aygfsteel.com/fanjs2000/archive/2013/11/23/406708.html
‹¹‹è¯•¾l“æžœåQ?1亿条数据用时93¿U’,生äñ”58ä¸?00mæ–‡äšg。每一æ?53¾U³ç§’ã€?br />
package io.netty.example.http.snoop;

import java.io.FileOutputStream;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class WriterFile {


        // 指定大小ä¸?1024 的缓冲区
        public static ByteBuffer bytebufferone = ByteBuffer.allocate(102400000);
        public static ByteBuffer bytebuffertwo = ByteBuffer.allocate(102400000);
        public static boolean checkbuffer =true;
        
        public static void main(String[] args) {
             long start = System.nanoTime();  
              
                
            for(int i=0;i<100000000;i++){
                
                if(checkbuffer)
                    processone("123abc"+i+"\r\n");
                else
                    prcesstwo("123abc"+i+"\r\n");    
            }
            long end = System.nanoTime();  
            System.out.println((end - start)+"耗时");  
        }
        /**
         * bytebuffertwo写日å¿?br />         */
        public static void prcesstwo(String log)
        {
            //写bytebuff
             boolean onecheck=checkposition(log,bytebuffertwo);
            if(onecheck)
                writerbuffer(log,bytebuffertwo);
            //写文ä»?br />            else{
                checkbuffer=true;
                writerbuffer(log,bytebufferone);
                writerfile(bytebuffertwo);
            }
        }
        
        /**
         * bytebufferone写日å¿?br />         * @param log
         */
        public static  void  processone(String log)
        {
                //写bytebuff
                 boolean onecheck=checkposition(log,bytebufferone);
                if(onecheck){
                    
                    writerbuffer(log,bytebufferone);
                }
                //写文ä»?br />                else{
                    checkbuffer=false;
                    writerbuffer(log,bytebuffertwo);
                    writerfile(bytebufferone);
                }
            }
        
        /**
         * 判断¾~“存是否可以写下日志
         * @param log
         * @return
         */
        public static  boolean checkposition(String log,ByteBuffer bytebuffer)
        {

            if(2*log.getBytes().length>bytebuffer.limit()-bytebuffer.position())
            {
                return false;
            }
            else
            {
                return true;
            }
        }
        /**
         * 写日志到¾~“å­˜åQŒåƈ且返回缓存指针位¾|?br />         * @param log
         * @return
         */
        public static   int  writerbuffer(String log,ByteBuffer bytebuffer )
        {
            for (int i = 0; i < log.length(); i++) {
                bytebuffer.putChar(log.charAt(i));
            }
            return bytebuffer.position();
        }
        /**
         * 写文ä»?br />         * @param filename
         */
        public static  void  writerfile(ByteBuffer bytebuffer)
        {
            try{
                FileOutputStream fos = new FileOutputStream(Datefile());
                FileChannel fc = fos.getChannel();
                bytebuffer.flip();
                fc.write(bytebufferone);
                fc.close();
                fos.close();
                bytebuffer.clear();
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
        /**
         * æ–‡äšg名按日期生äñ”
         * @param str
         * @return
         */
        public static String Datefile() {
               SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss");
               String str = format.format(new Date());
               return "d:/test/"+str+".txt";
        }
}


附带一个普通的nioè¯Õd†™
        public static  void test()
        {
            try{
            FileOutputStream fos = new FileOutputStream("d:/nio.txt");
            // 得到文äšg通道
            FileChannel fc = fos.getChannel();
            // 指定大小ä¸?1024 的缓冲区
            ByteBuffer bf = ByteBuffer.allocate(1024);
            // 要写入文件的字符ä¸?br />            String greeting = "Hello111";
            // 把以上字½W¦ä¸²é€å­—攑օ¥¾~“冲åŒ?br />            for (int i = 0; i < greeting.length(); i++) {
                bf.putChar(greeting.charAt(i));
            }
            // 记得执行˜q™ä¸ªæ–ÒŽ³•åQŒä‹Éå¾?position=0, limit=30, 才能写入正确的数æ?br />            // 否则 position ä¸?30, limit ä¸?1024åQŒå°†ä¼šæŠŠ 30 之后的全部空数据(0) 填到文äšgä¸?br />            
            System.out.println(greeting.getBytes().length);
            System.out.println(bf.position());
            System.out.println(bf.limit());
            
            bf.flip();
            // ¾~“冲区数据写入到文äšg中,会把¾~“冲åŒÞZ¸­ä»?position åˆ?limit 之间的数据写入文ä»?br />            fc.write(bf);
            fc.close(); // 关闭文äšg通道
            fos.close(); // 关闭文äšg输出‹¹?br />            }catch(Exception e){
             e.printStackTrace();
            
            }
        }


]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ·ðѧ| °ÍÑåÄ×¶ûÊÐ| аͶû»¢×óÆì| ¸ßÇàÏØ| èëÄÏÏØ| нòÏØ| °¢¿Ë| ÐÂÏçÊÐ| Àö½­ÊÐ| Äþ°²ÊÐ| ÐÂÓàÊÐ| ÏìË®ÏØ| Õ´»¯ÏØ| È·É½ÏØ| À¼ÏªÊÐ| ¸»ÑôÊÐ| ÌúÁ¦ÊÐ| ÄÏͶÊÐ| ÑŽ­ÏØ| Îä³ÇÏØ| ÍÁÄ¬ÌØÓÒÆì| °ÍÁÖÓÒÆì| ÃÜÔÆÏØ| ¹ãÔªÊÐ| ÎÚÀ­ÌØÖÐÆì| ¿¦À®| ÒæÑôÊÐ| ½éÐÝÊÐ| Ïã¸ñÀïÀ­ÏØ| ½­Î÷Ê¡| ǨÎ÷ÏØ| ¼Î¶¨Çø| ¸Õ²ìÏØ| ºÓ¼äÊÐ| ÁúÓÎÏØ| ÎÞé¦ÏØ| °ÍÖÐÊÐ| ¶«ÎÚ| ÃÏ´å| ¸§ÄþÏØ| Ìì¾þÏØ|