From 5e9aa39ff9f59bed4217a0bc75bd6d336b9171ac Mon Sep 17 00:00:00 2001 From: deuce <> Date: Fri, 23 Feb 2007 01:02:08 +0000 Subject: [PATCH] Some security checks. --- web/root/blogs/blog_config.js | 5 +++++ web/root/blogs/blog_item.xjs | 8 ++++++++ web/root/blogs/msg_index.xjs | 2 ++ 3 files changed, 15 insertions(+) diff --git a/web/root/blogs/blog_config.js b/web/root/blogs/blog_config.js index 8da2de3c3e..af22ee6148 100644 --- a/web/root/blogs/blog_config.js +++ b/web/root/blogs/blog_config.js @@ -33,6 +33,11 @@ var subject=parameters[6]; // exit(1); //} +if(!msg_area.sub[msg_code].can_read) { + write("<html><head><title>Error</title></head><body>Error opening "+msg_code+"!</body></html>"); + exit(1); +} + var msgbase = new MsgBase(msg_code); if(!msgbase.open()) { write("<html><head><title>Error</title></head><body>Error opening "+msg_code+"!</body></html>"); diff --git a/web/root/blogs/blog_item.xjs b/web/root/blogs/blog_item.xjs index ee7c5fb200..30f21e181d 100644 --- a/web/root/blogs/blog_item.xjs +++ b/web/root/blogs/blog_item.xjs @@ -58,6 +58,10 @@ function not_found_error(reason) } var hdr=msgbase.get_msg_header(msgid); +if(hdr==null) + not_found_error("no header"); +if(hdr.attr & (MSG_PRIVATE|MSG_DELETE)) + not_found_error("not viewable"); if(hdr.from.toUpperCase() != poster.toUpperCase()) not_found_error("poster"); //if(hdr.from_ext != pnum) @@ -126,6 +130,10 @@ while(1) { } } hdr=msgbase.get_msg_header(msgid); + if(hdr==null) + continue; + if(hdr.attr & (MSG_PRIVATE|MSG_DELETE)) + continue; var body=msgbase.get_msg_body(msgid, true); body=html_encode(body,true,true,false,false); //body=body.split(" ").join("</p><p>"); diff --git a/web/root/blogs/msg_index.xjs b/web/root/blogs/msg_index.xjs index ce167fa988..ab2c8414f1 100644 --- a/web/root/blogs/msg_index.xjs +++ b/web/root/blogs/msg_index.xjs @@ -6,6 +6,8 @@ <?xjs for(var grp in msg_area.grp_list) { for(var sub in msg_area.grp_list[grp].sub_list) { + if(!msg_area.grp_list[grp].sub_list[sub].can_read) + continue; write('<a href="'+msg_area.grp_list[grp].sub_list[sub].code+'/">'+msg_area.grp_list[grp].sub_list[sub].description+'</a><br>'); } } -- GitLab