[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [messagelib] webengineviewer/src/checkphishingurl: Start to implement host to check
From:       Montel Laurent <montel () kde ! org>
Date:       2016-12-09 13:01:26
Message-ID: E1cFKnm-0006lY-8T () code ! kde ! org
[Download RAW message or body]

Git commit 43fbb5af68af4afc89afddde38fd4e302314fad3 by Montel Laurent.
Committed on 09/12/2016 at 12:22.
Pushed by mlaurent into branch 'master'.

Start to implement host to check

M  +3    -2    webengineviewer/src/checkphishingurl/autotests/urlhashingtest.cpp
M  +48   -3    webengineviewer/src/checkphishingurl/urlhashing.cpp
M  +1    -1    webengineviewer/src/checkphishingurl/urlhashing.h

https://commits.kde.org/messagelib/43fbb5af68af4afc89afddde38fd4e302314fad3

diff --git a/webengineviewer/src/checkphishingurl/autotests/urlhashingtest.cpp \
b/webengineviewer/src/checkphishingurl/autotests/urlhashingtest.cpp index \
                63852362..8ccd3c6c 100644
--- a/webengineviewer/src/checkphishingurl/autotests/urlhashingtest.cpp
+++ b/webengineviewer/src/checkphishingurl/autotests/urlhashingtest.cpp
@@ -148,9 +148,10 @@ void UrlHashingTest::shouldGenerateHostPath()
     QFETCH(QStringList, hosts);
     QFETCH(QStringList, paths);
     QString result = \
WebEngineViewer::UrlHashing::canonicalizeUrl(QUrl::fromUserInput(input)); +    QUrl \
url(result);  
-    QCOMPARE(WebEngineViewer::UrlHashing::generateHostsToCheck(result), hosts);
-    QCOMPARE(WebEngineViewer::UrlHashing::generatePathsToCheck(result), paths);
+    QCOMPARE(WebEngineViewer::UrlHashing::generateHostsToCheck(url.host()), hosts);
+    QCOMPARE(WebEngineViewer::UrlHashing::generatePathsToCheck(url.path(), \
url.query()), paths);  }
 
 
diff --git a/webengineviewer/src/checkphishingurl/urlhashing.cpp \
b/webengineviewer/src/checkphishingurl/urlhashing.cpp index 2cf70e0a..e859bf39 100644
--- a/webengineviewer/src/checkphishingurl/urlhashing.cpp
+++ b/webengineviewer/src/checkphishingurl/urlhashing.cpp
@@ -77,14 +77,59 @@ QString UrlHashing::canonicalizeUrl(QUrl url)
     return QString::fromLatin1(urlEncoded);
 }
 
-QStringList UrlHashing::generatePathsToCheck(const QString &str)
+QStringList UrlHashing::generatePathsToCheck(const QString &str, const QString \
&query)  {
-    return {};
+    QStringList pathToCheck;
+    if (str.isEmpty()) {
+        return pathToCheck;
+    }
+    const int strLenght(str.length());
+    for (int i = 0; i < strLenght; ++i) {
+        //We check 5 element => 4 here and host if necessary
+        if (pathToCheck.count() == 4) {
+            break;
+        }
+        if (str.at(i) == QLatin1Char('/')) {
+            if (i == 0) {
+                pathToCheck << QStringLiteral("/");
+            } else {
+                pathToCheck << str.left(i);
+            }
+        }
+    }
+    if (!pathToCheck.isEmpty() && pathToCheck.at(pathToCheck.count()-1) != str) {
+        pathToCheck << str;
+    }
+    if (!query.isEmpty()) {
+        pathToCheck << str + QLatin1Char('?') + query;
+    }
+    qDebug() << "ssssssssssss :" << pathToCheck;
+    return pathToCheck;
 }
 
 QStringList UrlHashing::generateHostsToCheck(const QString &str)
 {
-    return {};
+    QStringList hostToCheck;
+    if (str.isEmpty()) {
+        return hostToCheck;
+    }
+    const int strLenght(str.length());
+    bool lastElement = true;
+    for (int i = strLenght; i > 0; --i) {
+        //We need to check just 5 element => 4 splits hosts + current host
+        if (hostToCheck.count() == 4) {
+            break;
+        }
+        if (str.at(i) == QLatin1Char('.')) {
+            if (lastElement) {
+                lastElement = false;
+            } else {
+                hostToCheck << str.right(strLenght - i - 1);
+            }
+        }
+    }
+    hostToCheck << str;
+    return hostToCheck;
 }
 
 QByteArray UrlHashing::hashComputation()
diff --git a/webengineviewer/src/checkphishingurl/urlhashing.h \
b/webengineviewer/src/checkphishingurl/urlhashing.h index 988c2564..4c1c4d20 100644
--- a/webengineviewer/src/checkphishingurl/urlhashing.h
+++ b/webengineviewer/src/checkphishingurl/urlhashing.h
@@ -34,7 +34,7 @@ public:
     ~UrlHashing();
 
     static QString canonicalizeUrl(QUrl url);
-    static QStringList generatePathsToCheck(const QString &str);
+    static QStringList generatePathsToCheck(const QString &str, const QString \
&query);  static QStringList generateHostsToCheck(const QString &str);
 
     QByteArray hashComputation();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic