1
0
Fork 0

English seance 11/05/2020

This commit is contained in:
Ethanell 2020-05-11 12:10:22 +02:00
parent 179a20d507
commit 02437684e1
5 changed files with 81 additions and 37 deletions

2
app.js
View file

@ -2,6 +2,7 @@ let express = require("express");
let morgan = require("morgan"); let morgan = require("morgan");
let indexRoute = require("./routes/index"); let indexRoute = require("./routes/index");
let checkMail = require("./routes/checkMail");
let notFoundRoute = require("./routes/notFound"); let notFoundRoute = require("./routes/notFound");
let errorRoute = require("./routes/error"); let errorRoute = require("./routes/error");
@ -12,6 +13,7 @@ app.use(morgan("dev"))
.use(express.static("public")) .use(express.static("public"))
.set("view engine", "pug") .set("view engine", "pug")
.use("/", indexRoute) .use("/", indexRoute)
.use("/checkmail", checkMail)
.use(notFoundRoute) .use(notFoundRoute)
.use(errorRoute) .use(errorRoute)
.listen(process.env.PORT || 8080); .listen(process.env.PORT || 8080);

View file

@ -13,27 +13,12 @@ body{
body { body {
background: linear-gradient(-45deg, #ee7752, #23a6d5); background: linear-gradient(-45deg, #ee7752, #23a6d5);
background-size: 200% 200%; background-size: 100%;
animation: gradient 15s ease infinite;
} }
@keyframes gradient {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
.container{ .container{
width: 100%; width: 100%;
height: 100vh; height: 100vh;
border-bottom: 0.2vw solid black;
} }
#main h1{ #main h1{
@ -176,10 +161,15 @@ input:focus{
} }
.hide{ .hide{
display : none;
} }
h2#cookie_text{ h2#cookie_text{
text-align: center; text-align: center;
font-size: 2.5vw; font-size: 2.5vw;
} }
#result_mail a {
color: #001bff;
cursor: pointer;
}

View file

@ -10,36 +10,70 @@ const cookie = document.querySelector("#cookie");
mailRegex = new RegExp("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])"); mailRegex = new RegExp("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])");
document.querySelectorAll("input").forEach((el) => { document.querySelectorAll("input").forEach(el => {
el.addEventListener("change", (e => { el.addEventListener("change", (() => {
el.classList.remove("error"); el.classList.remove("error");
})); }));
}); });
main.querySelector("input").addEventListener("keyup", (e) => { resultMail.querySelector("a").addEventListener("click", () => {
if (e.key === "Enter") { passwordTest.classList.remove("hide");
mailValid(); passwordTest.scrollIntoView({"behavior": "smooth"});
}
}); });
main.querySelector("#email").addEventListener("keyup", e => {
if (e.key === "Enter")
mailValid();
});
passwordTest.querySelector("#password").addEventListener("keyup", e => {
if (e.key === "Enter")
passwordCheck();
})
function mailValid() { function mailValid() {
let input = main.querySelector("input"); let input = main.querySelector("#email");
if (mailRegex.test(input.value)) { if (mailRegex.test(input.value)) {
resultMail.classList.remove("hide"); resultMail.classList.remove("hide");
resultMail.scrollIntoView({ resultMail.scrollIntoView({"behavior": "smooth"});
"behavior": "smooth"
});
} else { } else {
input.classList.add("error"); input.classList.add("error");
} }
} }
function mailCheck(mail) { function passwordCheck() {
let Http = new XMLHttpRequest(); let pass = passwordTest.querySelector("#password").value;
Http.open("GET", "https://cors-anywhere.herokuapp.com/https://haveibeenpwned.com/unifiedsearch/" + mail); let secLevel = {
//Http.setRequestHeader("Origin", "haveibeenpwned.com") "length": false,
Http.send(); "uppercase": false,
Http.response; "lowercase": false,
"number": false,
"special": false,
"identical": false,
"name": false,
"commonly": false
}
if (pass.length >= 8)
secLevel.length = true
if (pass.match("[A-Z]"))
secLevel.uppercase = true
if (pass.match("[a-z]"))
secLevel.lowercase = true
if (pass.match("[0-9]"))
secLevel.number = true
if (pass.match("\W"))
secLevel.special = true
if (pass.match)
secLevel.identical = true
if (pass.match)
secLevel.name= true
if (["123456", "password", "123456789", "12345678", "12345", "111111", "1234567", "sunshine", "qwerty", "iloveyou", "princess", "admin", "welcome", "666666", "abc123", "football", "123123", "monkey", "654321", "!@#$%^&*", "charlie", "aa123456", "donald", "password1", "qwerty123"].indexOf(pass) <= -1)
secLevel.commonly = true
resultPassword.classList.remove("hide");
resultPassword.scrollIntoView({"behavior": "smooth"});
} }
function mailCheck(mail) {
}

10
routes/checkMail.js Normal file
View file

@ -0,0 +1,10 @@
let router = require("express").Router();
let https = require('https')
router.get("/", (req, res) => {
});
module.exports = router;

View file

@ -4,21 +4,29 @@ block content
div.triangle-right div.triangle-right
h1 Do you really think you're safe on the web ? h1 Do you really think you're safe on the web ?
label(for="email") Let's begin by check if your email is safe ;) label(for="email") Let's begin by check if your email is safe ;)
input(type="email" id="email" name="email" placeholder="example : xyz@gmail.com") input#email(type="email" name="email" placeholder="example : xyz@gmail.com")
div.trapezoid div.trapezoid
div.container.hide#result_mail div.container.hide#result_mail
h1 Results h1 Results
h2 h2
h2 Let's see what about your h2 Let's see what about your
a(href="#password_test") passwords ? a passwords ?
div.container.hide#password_test div.container.hide#password_test
h1 Do you really think your passwords are safe ? h1 Do you really think your passwords are safe ?
label(for="password") Let's see if your password is secure label(for="password") Let's see if your password is secure
input(type="password" id="password" name="password" placeholder="your password: MDPdrive2") input#password(type="password" name="password" placeholder="your password: MDPdrive2")
div.container.hide#result_password div.container.hide#result_password
h1 Results h1 Results
h2 h2
ul ul
li MUST contain at least 8 characters (12+ recommended)
li MUST contain at least one uppercase letter
li MUST contain at least one lowercase letter
li MUST contain at least one number
li MUST contain at least one special character (!”#$%&'()*+,-./:;<=>?@[\]^_`{|}~ )
li MAY NOT contain more than two identical characters in a row
li MAY NOT contain first name, last name, email address mailbox or domain, company name or commonly used passwords
li MAY NOT match commonly used password character patterns
div.container.hide#password_manage div.container.hide#password_manage
h1 To make your life easier, use a password manager ! h1 To make your life easier, use a password manager !
h2 h2