Express 및 ejs <%=를 사용하여 JSON 렌더링
index.ejs에는 다음 코드가 있습니다.
var current_user = <%= user %>
노드에는
app.get("/", function(req, res){
res.locals.user = req.user
res.render("index")
})
다만, 취득한 페이지에서는,
var current_user = [object Object]
그리고 만약 내가 글을 쓴다면
var current_user = <%= JSON.stringify(user) %>
취득하는 내용:
var current_user = {"__v":0,"_id":"50bc01938f164ee80b000001","agents":...
JS를 읽을 수 있는 JSON을 통과시키는 방법이 있습니까?
오, 그건 쉬웠어, 쓰지 마.<%=
,사용하다<%-
대신.예를 들어 다음과 같습니다.
<%- JSON.stringify(user) %>
첫 번째는 HTML로 렌더링하고 두 번째는 변수를 렌더링합니다(있는 그대로 평가).
차려!
API 호출을 통해 사용자를 생성할 수 있는 경우 <%->는 심각한 XSS 취약성을 남깁니다.생각할 수 있는 해결 방법은 다음과 같습니다.
나처럼 당신의 오브젝트가 다음과 같은 이스케이프 문자를 포함할 수 있다면/
또는"
이 보다 견고한 솔루션을 사용합니다.
var current_user = <%- JSON.stringify(user).replace(/\\/g, '\\\\') %>
이 기능은 Express의 최신 버전에서 작동합니다.
언급URL : https://stackoverflow.com/questions/13788314/express-and-ejs-to-render-a-json
'programing' 카테고리의 다른 글
JSON 키에 따옴표로 묶인 문자열을 사용해야 하는 실질적인 이유가 있습니까? (0) | 2023.03.10 |
---|---|
AngularJs 형식의 첫 번째 잘못된 입력에 포커스 설정 (0) | 2023.03.10 |
JObject 계층에서 이름으로 특정 JToken 검색 (0) | 2023.03.10 |
리액트 아이콘 스타일링 방법 (0) | 2023.03.10 |
AngularJS 태그 링크가 작동하지 않음 (0) | 2023.03.10 |