Java如何防止JS腳本注入代碼實(shí)例
1.java中防止JS腳本注入的工具類-通用
public class XssUtil {
private static Map<String, String> xssMap = new LinkedHashMap<String, String>();
private static Map<String, String> xssNewMap = new LinkedHashMap<String, String>();
static {
init();
}
public static void init() {
// 含有腳本: script
xssMap.put("[s|S][c|C][r|R][i|C][p|P][t|T]", "");
// 含有腳本 javascript
xssMap.put("[\\\"\\\'][\\s]*[j|J][a|A][v|V][a|A][s|S][c|C][r|R][i|I][p|P][t|T]:(.*)[\\\"\\\']", "\"\"");
// 含有函數(shù): eval
xssMap.put("[e|E][v|V][a|A][l|L]\\((.*)\\)", "");
// 含有符號(hào) <
xssMap.put("<", "<");
// 含有符號(hào) >
xssMap.put(">", ">");
// 含有符號(hào) (
xssMap.put("\\(", "(");
// 含有符號(hào) )
xssMap.put("\\)", ")");
// 含有符號(hào) '
xssMap.put("'", "'");
}
/**
* 清除惡意的XSS腳本
*/
public synchronized static String cleanXSS(String value) {
String result = value;
for (Map.Entry<String, String> entry : xssMap.entrySet()) {
String key = entry.getKey();
String val = entry.getValue();
result = result.replaceAll(key, val);
}
return result;
}
Map 接口提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關(guān)系集的形式查看某個(gè)映射的內(nèi)容。映射順序 定義為迭代器在映射的 collection 視圖上返回其元素的順序。某些映射實(shí)現(xiàn)可明確保證其順序,如 TreeMap 類;另一些映射實(shí)現(xiàn)則不保證順序,如 HashMap 類。
Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射關(guān)系的 Set 視圖。
2.java中判斷錄入的信息是否包含emoji表情判斷:
/**
* emoji表情字符正則表達(dá)式
*/
private static final String EMOJI_REGEX = "[\\s\\S]*[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff][\\s\\S]*";
public static boolean hasEmojiStr(String str){
String notBlankStr = org.apache.commons.lang3.StringUtils.trimToEmpty(str);
return notBlankStr.matches(EMOJI_REGEX);
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Schedule Task動(dòng)態(tài)改寫Cron配置方式
這篇文章主要介紹了Spring Schedule Task動(dòng)態(tài)改寫Cron配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
java org.springframework.boot 對(duì)redis操作方法
在Spring Boot項(xiàng)目中操作Redis,你可以使用Spring Data Redis,Spring Data Redis是Spring提供的一個(gè)用于簡(jiǎn)化Redis數(shù)據(jù)訪問的模塊,它提供了一個(gè)易于使用的編程模型來與Redis交互,本文給大家介紹java org.springframework.boot 對(duì)redis操作方法,感興趣的朋友一起看看吧2025-04-04
springboot整合redis修改分區(qū)的操作流程
這篇文章主要介紹了springboot整合redis修改分區(qū)的操作流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java 策略模式與模板方法模式相關(guān)總結(jié)
這篇文章主要介紹了Java 策略模式與模板方法模式相關(guān)總結(jié),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2021-01-01
nacos配置中心遠(yuǎn)程調(diào)用讀取不到配置文件的解決
這篇文章主要介紹了nacos配置中心遠(yuǎn)程調(diào)用讀取不到配置文件的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01

