Yêu cầu thg 3 19, 2021 11:00 SA 154 2 1
  • 154 2 1
+2

Set Content-type là application/json và UTF-8 là đủ để không xảy ra XSS?

Chia sẻ
  • 154 2 1

Mình hiện đang phát triển website bằng nodejs sử dụng Sailsjs Hiện app đang trong quá trình chạy tool để kiểm tra lỗ hổng bảo mật. Đang có ý kiến là chỉ cần cài Content-type: application/json và UTF-8 là đủ để không xảy ra XSS. Liệu ý kiến này có đúng không ạ? Ai rành về bảo mật trả lời giúp mình với.

1 CÂU TRẢ LỜI


Đã trả lời thg 3 20, 2021 2:11 SA
Đã được chấp nhận
+3

Chào bạn, mình nghĩ cũng tuỳ trường hợp.

Nếu bạn có 1 trang blog, nơi bạn lấy response từ phía server và display nội dung của post theo dạng html:

// response
{
  "id": 1,
  "post": "<img src='x' onerror='alert(1)'>"
}

Và ở phía frontend:

<div id="post"></div>

<script>
  document.getElementById("post").innerHTML = response.post
</script>

Như bên trên thì vẫn XSS đc bình thường thôi à. Mình nghĩ nếu app của bạn có trường hợp như vậy thì cách tốt nhất là sanitize (làm sạch) data từ phía client trước khi gửi lên server và cả sanitize data lúc nhận đc từ phía server nữa (bước làm ở phía server luôn cần phải có)

Chia sẻ
Avatar T Dung @thuydungtrinh
thg 3 29, 2021 1:46 SA
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí