posts - 110, comments - 101, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          后臺 xss 控制

          Posted on 2014-09-28 13:49 云云 閱讀(732) 評論(0)  編輯  收藏
           
          package com.qiyi.appstore.util;
          import java.lang.reflect.Field;
          import java.lang.reflect.InvocationTargetException;
          import org.apache.commons.beanutils.BeanUtils;
          import org.apache.commons.lang.StringUtils;
          import org.slf4j.Logger;
          import org.slf4j.LoggerFactory;
          import com.qiyi.appstore.exception.AppStoreException;
          import com.qiyi.cloud.user.ApiCode;
          public class XssUtils {
          private static final Logger logger=LoggerFactory.getLogger(XssUtils.class);
          public static String getSafeStringXSS(String s){
                if (StringUtils.isBlank(s)) {  
                    return s;  
                }  
                StringBuilder sb = new StringBuilder(s.length() + 16);  
                for (int i = 0; i < s.length(); i++) {  
                    char c = s.charAt(i);  
                    switch (c) {  
                    case '<':  
                        sb.append("&lt;");  
                        break; 
                    case '>':  
                        sb.append("&gt;");  
                        break;  
                    case '\'':  
                        sb.append("&prime;");// &acute;");  
                        break;  
                    case '′':  
                        sb.append("&prime;");// &acute;");  
                        break;  
                    case '\"':  
                        sb.append("&quot;");  
                        break;  
                    case '"':  
                        sb.append("&quot;");  
                        break;  
                    case '&':  
                        sb.append("&");  
                        break;  
                    case '#':  
                        sb.append("#");  
                        break;  
                    case '\\':  
                        sb.append('¥');  
                        break; 
                    case '=':  
                        sb.append("=");  
                        break;
                    default:  
                        sb.append(c);  
                        break;  
                    }  
                }  
                return sb.toString(); 
            }
          public static <T> void getXssSaftBean(Class<?> clz,T bean) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException{
          String classname = clz.getSimpleName();
          logger.info("map target class name is {} .",classname);
          Field[] fields = clz.getDeclaredFields();
          for(Field field : fields){
          Class<?> type = field.getType();
          if(type.equals(String.class)){
          String fieldname = field.getName();
          String value = BeanUtils.getProperty(bean, fieldname);
          if(StringUtils.isNotBlank(value)){
          BeanUtils.setProperty(bean, fieldname, getSafeStringXSS(value));
          }
          }
          }
          }
          }

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 邯郸市| 罗平县| 琼海市| 阳原县| 和平区| 志丹县| 盖州市| 桑日县| 上杭县| 临沧市| 吴旗县| 通化县| 鄂州市| 西充县| 石阡县| 定日县| 灯塔市| 武宁县| 任丘市| 东乌珠穆沁旗| 宣汉县| 类乌齐县| 观塘区| 同心县| 伊川县| 南通市| 兰州市| 南平市| 焉耆| 瑞丽市| 内黄县| 乌兰察布市| 台北市| 通许县| 望谟县| 二手房| 丰县| 瑞昌市| 张家界市| 万荣县| 武义县|