[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