Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Are you asking if there are special numbers or strings or some other kind of plain data that would glitch out the interpreter when they're read back in? That would be an impressive failure of a programming language.

Yes it's safe as long as you're serializing correctly (which isn't very hard).



By definition you can't trust that "untrusted data" has been serialized correctly.

Lua has strong sandboxing capabilities (i.e. ability to limit and control the environment visible from a chunk of code), but the Lua authors years ago explicitly disclaimed the ability to sandbox untrusted code. The compiler and runtime are not bug free. They don't have the resources, notwithstanding that compared to any other non-formally verified implementation their track record is pretty decent, even compared to past and current efforts from Sun, Microsoft, Mozilla, and Google. If you want to run untrusted Lua code, Lua sandboxing should be just the first of multiple line of defense, just as modern web browsers rely on various operating system mechanisms to constrain breakouts.


> By definition you can't trust that "untrusted data" has been serialized correctly.

Please read the comment again. They said the person loading the data is the same person that serialized it. The data came from an untrusted source prior to being serialized.

For example, consider a guestbook program. People send it untrusted text and then the program serializes it into a database. Reading the database back is safe.


By definition you can't trust that "untrusted data" has been serialized correctly.

Lua has strong sandboxing capabilities (i.e. ability to limit and control the environment visible from a chunk of code), but the Lua authors years ago explicitly disclaimed the ability to sandbox untrusted code. The compiler and runtime are not bug free. They don't have the resources, notwithstanding that compared to any other non-formally verified implementation their track record is pretty decent, even compared to past and current efforts from Sun, Microsoft, Mozilla, and Google. If you want to run untrusted Lua code, Lua sandboxing should be just the first of multiple line of defense, just as modern web browsers rely on various operating system mechanisms (process separation, filesystem to constrain breakouts.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: