Asked Mar 19th, 2021 11:00 a.m. 137 2 1
  • 137 2 1
+2

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

Share
  • 137 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 ANSWERS


Answered Mar 20th, 2021 2:11 a.m.
Accepted
+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ó)

Share
Avatar T Dung @thuydungtrinh
Mar 29th, 2021 1:46 a.m.
Viblo
Let's register a Viblo Account to get more interesting posts.