国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java 自定義xss校驗注解實現(xiàn)

這篇具有很好參考價值的文章主要介紹了java 自定義xss校驗注解實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

自定義一個注解@Xss。名字隨意

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定義xss校驗注解
 * 
 * @author chfatech
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(value = { ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER })
@Constraint(validatedBy = { XssValidator.class })
public @interface Xss
{
    String message()

    default "不允許任何腳本運行";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

validator校驗類:XssValidator。這個校驗類要和上面的@Xss注解上的

@Constraint(validatedBy = { XssValidator.class })對應(yīng)

import com.chfatech.common.utils.StringUtils;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 自定義xss校驗注解實現(xiàn)
 * 
 * @author chfatech
 */
public class XssValidator implements ConstraintValidator<Xss, String>
{
    private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />";

    @Override
    public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext)
    {
        if (StringUtils.isBlank(value))
        {
            return true;
        }
        return !containsHtml(value);
    }

    public static boolean containsHtml(String value)
    {
        Pattern pattern = Pattern.compile(HTML_PATTERN);
        Matcher matcher = pattern.matcher(value);
        return matcher.matches();
    }
}

具體使用在某個字段上加上注解;形如:

@Data
public class HomeQuery {

    @ApiModelProperty(name = "keyword",value = "搜索關(guān)鍵詞")
    @Xss
    @SqlInject(message = "{exists.illge.word}")
    private String keyword;

    @ApiModelProperty(name = "sdgId",value = "sdg主鍵id")
    private Long sdgId;
}

然后在控制層中增加@Validated注解校驗就可以了

java 自定義xss校驗注解實現(xiàn),java,xss

?以上代碼實現(xiàn)后。會自動針對某些增加了@Xss字符進行校驗。如果想增加sql注入校驗。以上方法類似文章來源地址http://www.zghlxwxcb.cn/news/detail-634483.html

到了這里,關(guān)于java 自定義xss校驗注解實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • spring-boot 請求參數(shù)校驗:注解 @Validated 的使用、手動校驗、自定義校驗

    spring-boot中可以用@validated來校驗數(shù)據(jù),如果數(shù)據(jù)異常則會統(tǒng)一拋出異常,方便異常中心統(tǒng)一處理。 spring-boot已經(jīng)引入了基礎(chǔ)包,所以直接使用就可以。 在屬性上添加校驗注解: 在Controller上添加 @Validated 注解 校驗未通過時,可能看到: 在 @Validated 后面緊跟著追加BindingResult,

    2023年04月16日
    瀏覽(33)
  • Controller層自定義注解攔截request請求校驗

    Controller層自定義注解攔截request請求校驗

    一、背景 筆者工作中遇到一個需求,需要開發(fā)一個注解,放在controller層的類或者方法上,用以校驗請求參數(shù)中(不管是url還是body體內(nèi),都要檢查,有token參數(shù),且符合校驗規(guī)則就放行)是否傳了一個token的參數(shù),并且token符合一定的生成規(guī)則,符合就不予攔截,放行請求,否則

    2024年01月17日
    瀏覽(28)
  • Springboot——@valid 做字段校驗和自定義注解

    Springboot——@valid 做字段校驗和自定義注解

    再項目開發(fā)中,針對前端傳遞的參數(shù)信息,有些接口中需要寫大量的 if 判斷,導(dǎo)致代碼臃腫,不夠優(yōu)雅。 此時,可以使用 @Valid 實現(xiàn)基本的字段校驗。 springboot 2.3之前 ,直接進行開發(fā)即可,無需引用額外的依賴 集成在 spring-boot-starter-web 中。 springboot 2.3之后 需要額外引入

    2023年04月26日
    瀏覽(22)
  • Java實現(xiàn)自定義注解

    Java實現(xiàn)自定義注解

    (1)Java實現(xiàn)自定義注解其實很簡單,跟類定義差不多,只是屬性的定義可能跟我們平時定義的屬性略有不同,這里會給大家詳解,先來看代碼: 上面代碼就實現(xiàn)了一個 自定義注解 , 實現(xiàn)自定義注解需要最少指定 兩個 基本條件 : ①注解的作用范圍②注解的生命周期 ,那

    2023年04月19日
    瀏覽(24)
  • Java注解源碼分析,實現(xiàn)自定義注解通過反射獲取

    JDK5.0 引入,可以通過反射機制動態(tài)獲取,大量應(yīng)用于java框架中 內(nèi)置注解 @Override 重寫父類方法時 @Deprecated 使用它存在風險,可能導(dǎo)致錯誤 可能在未來版本中不兼容 可能在未來版本中刪除 一個更好和更高效的方案已經(jīng)取代它 @SuppressWarnings 告訴編譯器忽略指定的警告,不用在

    2024年02月03日
    瀏覽(21)
  • Java 4種校驗注解(值校驗、范圍校驗、長度校驗、格式校驗)

    1 值校驗 1.1 @NotNull注解 被注解的元素必須不為空,一般 用于數(shù)值類型的參數(shù)校驗 @NotNull(message = \\\"用戶編號不能為空\\\") private Integer userId; 1.2 @NotBlank注解 驗證注解的元素值不為空(不為null、去除首位空格后長度為0),并且類型為String。 @NotBlank(message = \\\"用戶名稱不能為空\\\") pr

    2024年02月16日
    瀏覽(22)
  • springboot使用@Valid 和 @Validated 注解校驗詳解以及編寫一個自定義全局異常類

    springboot使用@Valid 和 @Validated 注解校驗詳解以及編寫一個自定義全局異常類

    全局異常處理類 驗證: ============================================== 導(dǎo)入所需要的包: 如果你是 springboot 項目,那么可以不用引入了,已經(jīng)引入了,他就存在于最核心的 web 開發(fā)包里面。 如果你不是 springboot 項目,那么引入下面依賴即可: 新建三個實體類 實現(xiàn)一: 使用@Valid注解修

    2024年02月10日
    瀏覽(30)
  • 【Java】在實體類中常用的注解校驗

    【Java】在實體類中常用的注解校驗

    注解 說明 @Null 只能為null @NotNull(message = “id不能為空”) 必須不為null,可以為空字符串 @Min(value) 必須為一個不小于指定值的數(shù)字 @Max(value) 必須為一個不大于指定值的數(shù)字 @NotBlank(message = “姓名不能為空”) 驗證注解的元素值不為空(不為null、去除首位空格后長度為0),不同

    2024年02月04日
    瀏覽(23)
  • @NotNull @NotEmpty @NotBlank java校驗注解 validation

    1.@NotNull 不能為 null,但可以為 empty,一般用于判空 Integer 類型等基本數(shù)據(jù)類型,而且被其標注的字段可以使用 @size、@Max、@Min 對數(shù)值進行大小的控制 2.@NotEmpty 不能為 null,且長度必須大于 0,一般用于集合類或者數(shù)組上,也有人用于String(不推薦) 3.@NotBlank 只能作用在接收的

    2024年02月10日
    瀏覽(19)
  • 注解實現(xiàn)校驗接口傳參是否超出取值范圍

    注解實現(xiàn)校驗接口傳參是否超出取值范圍

    寫接口,Dto里很多字段要檢驗傳參范圍,自定義個注解來校驗。 注解定義代碼: 實現(xiàn)思路是使用JSR303校驗框架的@Constraint注解,實現(xiàn)ConstraintValidator接口,定義初始化和參數(shù)校驗邏輯。 調(diào)用下: 借用 @JsonCreator 注解,反序列化前端傳參成一個枚舉對象時,進行校驗。 此時Dt

    2024年01月21日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包