나는 이것도 실행했습니다. 다른 사람들이 여기에서 말했듯이 eval은 자바 스크립트를 즉시 생성하고 브라우저에서 실행하려고 할 때 유용합니다. 이 기술의 내 용도는 단추를 눌렀을 때 서버로 다시 전화를 걸 간단한 기능과 같은 작은 것들로 이동하는 것입니다. 상황에 따라 두 가지 기능이있을 수 있습니다. 또한 데이터베이스에서 변경되는 정보를 표시하는 데 사용했습니다. 정보는 항상 단순한 텍스트입니다. 그래서 주사 공격은 할 수 없습니다.
어쨌든, 나는이 Javascript EVAL 문에 대한 제한 사항을 실행했으며 1024 자 제한이 있다고 생각합니다. 이걸 살펴볼 때 평가 절과 같은 이상한 것들을 원래 텍스트를 뱉어 내기 시작합니다. 이것은 브라우저에 보내기 전에 16 진수를 모두 16 진수로 처리하기 때문에 분명합니다. 그래서 텍스트에 작은 따옴표 나 큰 따옴표 같은 것을 넣으면 문제가 발생하지 않습니다. (그리고 모든 것을 hexing하는 것은 주사 공격을 막는 데 도움이됩니다.)
jQuery에서 getscript를 사용하는 사람과도 관련이 있습니다. 크기 제한이없는 평가와 마찬가지로 잘 작동합니다. 당신이 취해야 할 유일한 추가 단계는 먼저 자바 스크립트 파일을 만드는 것입니다.
나는이 도움이되고 원래 포스터의 질문에 답할 수 있기를 바랍니다. 크기 제한은 1024 바이트라고 생각합니다.
* DB에서 저장하는 것이 좋지만 왜 'eval'을 사용해야합니까? –
db가 코드를 자르거나 다른 문자 인코딩 문제가있는 것처럼 들립니다. "동일"db 값으로 작동하는 수동 값을 diffed 시도 했습니까? – Robusto
@Nick : 코드의 입력을 제어하므로 완벽하게 안전합니다. 그렇지 않으면 db js 코드가 별도의 파일로 침을 뱉어 내고 js 스크립트로 파일을 포함시키는 것이 좋습니다. 내가 생각하는 것보다 훨씬 더 효율적 일까? – R0b0tn1k