|
From: creedon <icr...@us...> - 2005-08-13 20:39:22
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/security In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21330 Modified Files: blockHttpByIP Log Message: support for ip ranges Index: blockHttpByIP =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/security/blockHttpByIP,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** blockHttpByIP 26 Mar 2005 21:46:13 -0000 1.1.1.1 --- blockHttpByIP 13 Aug 2005 20:39:14 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.security.blockHttpByIP ! ÇChange Notes ÇThursday, November 04, 1999 at 11:34:58 PM by AR ÇIf config.mainResponder.prefs.flAllowByIpOnly is true, block all requests except those originating from IP addresses listed in config.mainResponder.prefs.allowedIpAddresses. ÇThis script is intended to be called from config.mainResponder.callbacks.controlAccess.blockByIP. Ç04/16/00; 1:25:29 AM by JES Çlocalized error message Ç05/01/00; 6:42:47 PM by JES ÇChanged getString calls to use a replacement table address instead of a lists local (pt); bundle { // 4/16/00; 4:50:45 PM by JES: temporary page table for localization support Çfor localization, we have to have a page table with at least the language, so we make a temporary one new (tableType, @pt); if defined (config.mainResponder.globals.language) { pt.language = config.mainResponder.globals.language} else { if defined (user.prefs.language) { pt.language = user.prefs.language} else { pt.language = "English"}}}; if defined (config.mainResponder.prefs.flAllowByIpOnly) { if config.mainResponder.prefs.flAllowByIpOnly { local (s, ix = 1); loop { s = string.nthField (config.mainResponder.prefs.allowedIpAddresses, ",", ix++); if string.length (s) == 0 { break}; if client == string.trimWhiteSpace (s) { return (true)}}; code = 403; //if we get here, the client is calling from a blocked IP address local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list replacementTable.client = client; responseBody = webserver.util.buildErrorPage ("403 FORBIDDEN", mainResponder.getString ("security.blockHttpByIp", @replacementTable, pta: @pt)); // 4/16/00 JES: localized scriptError ("!return")}}; //prevent mainResponder.respond from overwriting our response return (true) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.security.blockHttpByIP ! ÇChanges Ç8/3/05; 1:40:32 PM by TAC Çsupport for ip ranges, could do more robust checking but should do the trick, inspired by a comment from Samuel Reynolds in a doc server discussion group Çranges are in the form of 127.0.0.1-127.0.0.255 Ç05/01/00; 6:42:47 PM by JES ÇChanged getString calls to use a replacement table address instead of a lists Ç04/16/00; 1:25:29 AM by JES Çlocalized error message Ç11/04/99 at 11:34:58 PM by AR ÇIf config.mainResponder.prefs.flAllowByIpOnly is true, block all requests except those originating from IP addresses listed in config.mainResponder.prefs.allowedIpAddresses. ÇThis script is intended to be called from config.mainResponder.callbacks.controlAccess.blockByIP. local (pt); bundle { // 4/16/00; 4:50:45 PM by JES: temporary page table for localization support Çfor localization, we have to have a page table with at least the language, so we make a temporary one new (tableType, @pt); if defined (config.mainResponder.globals.language) { pt.language = config.mainResponder.globals.language} else { if defined (user.prefs.language) { pt.language = user.prefs.language} else { pt.language = "English"}}}; if defined (config.mainResponder.prefs.flAllowByIpOnly) { if config.mainResponder.prefs.flAllowByIpOnly { local (s, ix = 1); loop { s = string.nthField (config.mainResponder.prefs.allowedIpAddresses, ",", ix++); if string.length (s) == 0 { break}; s = string.trimWhiteSpace (s); if s contains "-" { // range checking. inclusive if client >= string.nthField (s, "-", 1) and client <= string.nthField (s, "-", 2) { return (true)}} else { if client == s { return (true)}}}; code = 403; //if we get here, the client is calling from a blocked IP address local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list replacementTable.client = client; responseBody = webserver.util.buildErrorPage ("403 FORBIDDEN", mainResponder.getString ("security.blockHttpByIp", @replacementTable, pta: @pt)); // 4/16/00 JES: localized scriptError ("!return")}}; //prevent mainResponder.respond from overwriting our response return (true) \ No newline at end of file |