{"id":819,"date":"2013-03-11T16:07:55","date_gmt":"2013-03-11T20:07:55","guid":{"rendered":"http:\/\/blog.uvm.edu\/ctl-projects\/?p=390"},"modified":"2013-03-11T16:07:55","modified_gmt":"2013-03-11T20:07:55","slug":"events-calendar-mystery-solved","status":"publish","type":"post","link":"https:\/\/blog.uvm.edu\/waw\/2013\/03\/11\/events-calendar-mystery-solved\/","title":{"rendered":"Events calendar mystery solved"},"content":{"rendered":"<p>On Mar 4, 2013, at 11:17 AM, Wendy Verrrei-Berenback &lt;<a href=\"mailto:wverreib@uvm.edu\">wverreib@uvm.edu<\/a>&gt; wrote:<\/p>\n<blockquote><p>Disallowed Key Characters: pspw1-8520-PORTAL-PSJSESSIONID<br \/>\nusing Firefox 19<\/p><\/blockquote>\n<p>The Events Calendar code utilizes a &#8220;software framework&#8221; (viz.<a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_framework\">http:\/\/en.wikipedia.org\/wiki\/Software_framework<\/a>\u00a0) called CodeIgnitor. When processing any sort of input (URL, form input via GET or POST, or cookies), CodeIgnitor tries to &#8220;sanitize&#8221; the input to remove or exclude any data that may be malicious in nature.<\/p>\n<p>In particular, CodeIgnitor goes through every cookie set by ANY application in the\u00a0<a href=\"http:\/\/uvm.edu\/\">uvm.edu<\/a>\u00a0domain. Why? Because it can, and cookies are only identified by hostname (<a href=\"http:\/\/catalyst.uvm.edu\/\">catalyst.uvm.edu<\/a>) or domain name (<a href=\"http:\/\/uvm.edu\/\">uvm.edu<\/a>), not by the application that deposited them. This is a bit of overkill, as we have a lot of applications. \u00a0CodeIgnitor took exception to any cookie whose name was NOT constructed solely of the characters a through z, A to Z, 0 to 9, &#8220;:&#8221;, &#8220;_&#8221;. and &#8220;\/&#8221; .<\/p>\n<p>Any UVM application using WebAuth &#8212; like the mediamanager, was producing a key named<\/p>\n<p><a href=\"mailto:webauth_ct_krb5_krbtgt\/uvm.edu@uvm.edu\">webauth_ct_krb5_krbtgt\/uvm.edu@uvm.edu<\/a><\/p>\n<p>Sorry, &#8220;@&#8221;, and &#8220;.&#8221; disallowed, outside the above set.<\/p>\n<p>PeopleSoft?<\/p>\n<p>pspw1-8520-PORTAL-PSJSESSIONID<br \/>\npspw2-8520-PORTAL-PSJSESSIONID<\/p>\n<p>&#8220;-&#8221; disallowed.<\/p>\n<p>I locally extended the CodeIgnitor core Input class to accept &#8220;@&#8221;, &#8220;-&#8220;, and &#8220;.&#8221; when examining cookies (But not when sanitizing URLs or form input). This error should trouble us no more.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On Mar 4, 2013, at 11:17 AM, Wendy Verrrei-Berenback &lt;wverreib@uvm.edu&gt; wrote: Disallowed Key Characters: pspw1-8520-PORTAL-PSJSESSIONID using Firefox 19 The Events Calendar code utilizes a &#8220;software framework&#8221; (viz.http:\/\/en.wikipedia.org\/wiki\/Software_framework\u00a0) called CodeIgnitor. When processing any sort of input (URL, form input via GET &hellip; <a href=\"https:\/\/blog.uvm.edu\/waw\/2013\/03\/11\/events-calendar-mystery-solved\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41826],"tags":[42758,41836,542],"class_list":["post-819","post","type-post","status-publish","format-standard","hentry","category-wes","tag-boffins","tag-codeignitor","tag-events"],"_links":{"self":[{"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/posts\/819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/comments?post=819"}],"version-history":[{"count":0,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/posts\/819\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/media?parent=819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/categories?post=819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/tags?post=819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}