Strip URL-unfriendly characters from UID before using it as URL segment.

This commit is contained in:
Andrew McMillan 2011-11-30 09:17:28 +13:00
parent 65c420679b
commit 91d6a69899
4 changed files with 13 additions and 13 deletions

View File

@ -648,8 +648,8 @@ EOSQL;
$dav_data_params = $base_params;
$dav_data_params[':user_no'] = $user_no;
// We don't allow a '/' in the UID to appear in the path, but anything else is fair game.
$dav_data_params[':dav_name'] = sprintf( '%s%s.ics', $path, str_replace('/','',$uid) );
// We don't allow any of &?\/@%+: in the UID to appear in the path, but anything else is fair game.
$dav_data_params[':dav_name'] = sprintf( '%s%s.ics', $path, preg_replace('{[&?\\/@%+:]}','',$uid) );
$dav_data_params[':etag'] = md5($icalendar);
$calitem_params = $dav_data_params;
$dav_data_params[':dav_data'] = $icalendar;

View File

@ -2,14 +2,14 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule
ETag: "a538e222b914a4030381e360ac974a27"
Content-Length: 2463
ETag: "6049c2ed7383e7a84ccf7f019f8e07f5"
Content-Length: 2460
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<response>
<href>/caldav.php/user5/home/naltpirh2vfjfmplmsivuo30t8%40google.com.ics</href>
<href>/caldav.php/user5/home/naltpirh2vfjfmplmsivuo30t8google.com.ics</href>
<propstat>
<prop>
<C:calendar-data>BEGIN:VCALENDAR
@ -92,12 +92,12 @@ END:VCALENDAR
</response>
</multistatus>
dav_name: >/user5/home/naltpirh2vfjfmplmsivuo30t8@google.com.ics<
dav_name: >/user5/home/naltpirh2vfjfmplmsivuo30t8google.com.ics<
dtstart: >2010-08-16 15:00:00+12<
dtstart_utc: >2010-08-16 03:00:00<
rrule: >FREQ=MONTHLY;WKST=MO;BYDAY=3SU<
dav_name: >/user5/home/v3f2otajsto18em4rom3jd4238@google.com.ics<
dav_name: >/user5/home/v3f2otajsto18em4rom3jd4238google.com.ics<
dtstart: >2009-07-08 12:00:00+12<
dtstart_utc: >2009-07-08 00:00:00<
rrule: >FREQ=WEEKLY;WKST=SU;INTERVAL=2;UNTIL=20090921T065959Z;BYDAY=MO<

View File

@ -57,7 +57,7 @@ END:VCALENDAR
start: >20060101T220000Z<
class: >PRIVATE<
dav_name: >/user1/anotherone/20060803T084628Z-6040-1000-1-6@lamb.ics<
dav_name: >/user1/anotherone/20060803T084628Z-6040-1000-1-6lamb.ics<
finish: >20060802T003456Z<
rrule: >FREQ=YEARLY;INTERVAL=1<
start: >20060801T003456Z<

View File

@ -2,14 +2,14 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, calendar-proxy, bind, addressbook
ETag: "38a9a5f68b0d1510588fb3456181b129"
Content-Length: 1037
ETag: "cdb4786ea5b91bf38b8f332da104965d"
Content-Length: 1034
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<response>
<href>/caldav.php/user1/anotherone/86203AFD481A6C42892013E6E0C4845D039A2543%40AKEXBE02.telecom.tcnz.net.ics</href>
<href>/caldav.php/user1/anotherone/86203AFD481A6C42892013E6E0C4845D039A2543AKEXBE02.telecom.tcnz.net.ics</href>
<propstat>
<prop>
<getetag>"621885941033781f3462950c9bc2844b"</getetag>
@ -39,7 +39,7 @@ END:VCALENDAR
</multistatus>
class: >PUBLIC<
dav_name: >/user1/anotherone/86203AFD481A6C42892013E6E0C4845D039A2543@AKEXBE02.telecom.tcnz.net.ics<
dav_name: >/user1/anotherone/86203AFD481A6C42892013E6E0C4845D039A2543AKEXBE02.telecom.tcnz.net.ics<
finish: >20070119T203000Z<
rrule: >NULL<
start: >20070119T203000Z<
@ -47,7 +47,7 @@ END:VCALENDAR
tz_id: >NULL<
class: >PRIVATE<
dav_name: >/user1/anotherone/20060803T084628Z-6040-1000-1-6@lamb.ics<
dav_name: >/user1/anotherone/20060803T084628Z-6040-1000-1-6lamb.ics<
finish: >20060802T003456Z<
rrule: >FREQ=YEARLY;INTERVAL=1<
start: >20060801T003456Z<