You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Shazron Abdullah (Commented) (JIRA)" <ji...@apache.org> on 2011/12/02 00:34:40 UTC

[jira] [Commented] (CB-96) [PGWhitelist processWhitelist] IP adresses handling

    [ https://issues.apache.org/jira/browse/CB-96?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13161304#comment-13161304 ] 

Shazron Abdullah commented on CB-96:
------------------------------------

I believe there is a typo in your allowedHosts, the first octet of the IP address should be 192 instead of 162. Changing those, testIpExactMatch passes, but testIpWildcardMatch still fails.

I have found the cause - the PGWhiteList::processWhitelist code always assumes domain names, so when a wildcard is at the end, this is what the regex looks like for "192.168.1.*":
{code}
192\.168\.1\.(aero|asia|arpa|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|xxx|[a-z][a-z])
{code}
The fix would be to not do this if the allowed host looks like an IP address.
                
> [PGWhitelist processWhitelist] IP adresses handling
> ---------------------------------------------------
>
>                 Key: CB-96
>                 URL: https://issues.apache.org/jira/browse/CB-96
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: iOS
>         Environment: Xcode 4
>            Reporter: STB Land
>            Assignee: Shazron Abdullah
>            Priority: Critical
>              Labels: objective-c, phonegap, regex, wildcard
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> Theses tests fail with version 1.2.0 (not tested before) :
> {code:title=PGWhitelistTests.h|borderStyle=solid}
> @interface PGWhitelistTests : SenTestCase {
> }
> {code}
> {code:title=PGWhitelistTests.m|borderStyle=solid}
> #import "PGWhitelistTests.h"
> #import <PhoneGap/PGWhitelist.h>
> @implementation PGWhitelistTests
> - (void)setUp
> {
>     [super setUp];   
> }
> - (void)tearDown
> {
>     [super tearDown];
> }
> - (void) testIpExactMatch
> {    
>     NSArray* allowedHosts = [NSArray arrayWithObjects: 
>                              @"162.168.1.1",
>                              @"162.168.2.1",
>                              nil];
>     PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
>     STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://mydomain.com"]], nil);
>     STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.1.1"]], nil);
>     STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.2.1"]], nil);
>     STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.3.1"]], nil);
>     [whitelist release];
> }
> - (void) testIpWildcardMatch
> {    
>     NSArray* allowedHosts = [NSArray arrayWithObjects: 
>                              @"162.168.1.*",
>                              @"162.168.2.*",
>                              nil];
>     PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
>     STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://mydomain.com"]], nil);
>     STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.1.1"]], nil);
>     STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.1.2"]], nil);
>     STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.2.1"]], nil);
>     STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.2.2"]], nil);
>     STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.3.1"]], nil);
>     [whitelist release];
> }
> @end
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira