responses
authorJoey Hess <joey@kodama.kitenet.net>
Tue, 23 Sep 2008 20:17:09 +0000 (16:17 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Tue, 23 Sep 2008 20:17:09 +0000 (16:17 -0400)
doc/todo/structured_page_data.mdwn

index 62d5f04d6c1570afc590c9ece01328c50e76944c..54e001fc6c92ebc08bdabdb9ad53eab74f745a20 100644 (file)
@@ -165,6 +165,41 @@ See also:
 >>>> I've just updated the second of the two patches below.  The two patches are not mutually
 >>>> exclusive, but I'm leaning towards the second as more useful (for the things I'm doing). -- [[Will]]
 
 >>>> I've just updated the second of the two patches below.  The two patches are not mutually
 >>>> exclusive, but I'm leaning towards the second as more useful (for the things I'm doing). -- [[Will]]
 
+I think it's awesome that you're writing this code to explore the problem
+space, [[Will]] -- and these plugins are good stabs at at least part of it.
+Let me respond to a few of your comments.. --[[Joey]]
+
+On use cases, one use case is a user posting a bug report with structured
+data in it. A template is one way, but then the user has to deal with the
+format used to store the structured data. This is where a edit-time form
+becomes essential. Another use case is, after many such bugs have been filed,
+wanting to add a new field to each bug report. To avoid needing to edit
+every bug report it would be good if the fields in a bug report were
+defined somewhere else, so that just that one place can be edited to add
+the new field, and it will show up in each bug report (and in each bug
+report's edit page, as a new form field).
+
+Re the form plugin, I'm uncomfortable with tying things into
+[[!cpan CGI::FormBuilder]] quite so tightly as you have. CGI::FormBuilder
+could easily change in a way that broke whole wikis full of pages. Also,
+needing to sanitize FormBuilder fields with security implications is asking
+for trouble, since new FormBuilder features could add new fields, or
+add new features to existing fields (FormBuilder is very DWIM) that open
+new security holes. 
+
+I think that having a type system, that allows defining specific types,
+like "email address", by writing code (that in turn can use FormBuilder),
+is a better approach, since it should avoid becoming a security problem.
+
+One specific security hole, BTW, is that if you allow the `validate` field,
+FormBuilder will happily treat it as a regexp, and we don't want to expose
+arbitrary perl regexps, since they can at least DOS a system, and can
+probably be used to run arbitrary perl code.
+
+The data plugin only deals with a fairly small corner of the problem space,
+but I think does a nice job at what it does. And could probably be useful
+in a large number of other cases.
+
     #!/usr/bin/perl
     # Interpret YAML data to make a web form
     package IkiWiki::Plugin::form;
     #!/usr/bin/perl
     # Interpret YAML data to make a web form
     package IkiWiki::Plugin::form;