Bagaimana saya bisa memastikan bahwa parameter yang lewat tidak memiliki konten skrip lintas situs

Saya membuat layanan Web Istirahat Menggunakan Pegas & meneruskan parameter ke metode dari kelas model.

Parameter input saya adalah sebagai

{
    "user_id": 23,
    "user_email_id": "[email protected]",
    "user_password": "fdsdsdf",
    "firstname": "<script>window.alert(‘surprise!’);</script>",
    "lastname": "kdfgkdf",
    "mobile_number": "1414141414",
    "user_status": 1,
    "isdeleted": 0,
    "created_by": 1,
    "profile_picturename": "kfksdjfhksjd",
    "address": "sfdsdfsd"
}

& Metode pengontrol ReST saya adalah sebagai

@RequestMapping(value = "/validate", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public Object AddUser(@Valid @RequestBody UserInputModel userInputModel, BindingResult br, HttpServletResponse response) throws Exception {
    //Logic

}

Di sini saya ingin memastikan bahwa parameter penerusan tidak mengandung Xss atau bagaimana saya bisa memastikan bahwa encoder HTML akan berfungsi untuk model input saya

Terima kasih sebelumnya


person Anup Deshpande    schedule 27.01.2016    source sumber


Jawaban (1)


Gunakan anotasi @SafeHtml Hibernate Validator:

https://docs.jboss.org/hibernate/validator/5.2/reference/en-US/html/ch02.html#validator-defineconstraints-hv-constraints

Anda perlu menambahkan jsoup sebagai ketergantungan

Contoh:

@Entity 
public class Foo {

  @SafeHtml(...)
  private String firstName;

}

Kemudian jika Anda memvalidasi entitas, maka tidak akan valid jika FirstName berisi xss

person Neil McGuigan    schedule 27.01.2016