Alexei Golovko wrote:
24.04.2012, 16:15, "Adam Chlipala"<[email protected]>:
Alexei Golovko wrote:

  And I disagree that compiler should prevent things like phishing through 
absolute positioning etc. Compiler should be safe with respect to 
_programmer's_ errors; this also means that user data can't appear in unsafe 
place unintentionally, without explicit parsing of this data. But if programmer 
do explicit parsing, compiler can not check correctness --- for example, if I 
use plain text design of forum, for safe input I need check alignments (that is 
leading spaces), compiler can't help me in this question.
You are assuming the programmer only wants the compiler's help in
reasoning about whole-program invariants.  In contrast, I want the
compiler to help in reasoning about invariants of modules, such that we
can compose modules and get certain guarantees for free.  For instance,
I want to be able to use a module that I can think of as controlling a
certain rectangle of the page display.  If the module can use CSS to
escape out of its box and draw content elsewhere, then the invariant is
violated.
But this invariant is already violated: module can include any custom 
stylesheet by adding its URL to whitelist, can't it?

Yes. I'm talking about invariants that can be guaranteed within Ur/Web code; .urp directives don't count, since such files are easy to audit. Without explicit whitelisting, Ur/Web code is very limited in which stylesheets it can reference.

Your suggestion to focus just on avoiding code injection is a reasonable point in the design space, and I'm not ruling it out.

_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to