Skip to content
This repository was archived by the owner on Mar 2, 2025. It is now read-only.

Commit 0c93e57

Browse files
Merge pull request #10 from bandish1304/bandish-contribution
security improvements issue #6
2 parents 2eeb08d + 691c9b7 commit 0c93e57

File tree

5 files changed

+66
-28
lines changed

5 files changed

+66
-28
lines changed

script/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.env

script/dashboard.js

+11-8
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,19 @@ import {
55
signOut,
66
} from "https://www.gstatic.com/firebasejs/9.16.0/firebase-auth.js";
77

8+
// Its to load environment variables
9+
import dotenv from 'dotenv';
10+
dotenv.config();
11+
812
const firebaseConfig = {
9-
apiKey:
10-
"AIzaSyCf3OuJ3LfQIOrY_ytB-VMwPTm2jaKIBJ4",
11-
authDomain: "ubercoders.firebaseapp.com",
12-
projectId: "ubercoders",
13-
storageBucket: "ubercoders.firebasestorage.app",
14-
messagingSenderId: "648246074997",
13+
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
14+
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
15+
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
16+
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
17+
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
1518
appId:
16-
"1:648246074997:web:d8724fc2c7aed70c6ee23c",
17-
measurementId: "G-02D2QNJ8P7",
19+
process.env.REACT_APP_FIREBASE_APP_ID,
20+
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,
1821
};
1922

2023
const app = initializeApp(firebaseConfig);

script/index.js

+24-11
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,21 @@ import {
88
signOut,
99
} from "https://www.gstatic.com/firebasejs/9.16.0/firebase-auth.js";
1010

11+
12+
// Its to load environment variables
13+
import dotenv from 'dotenv';
14+
dotenv.config();
15+
16+
1117
// Your Firebase configuration
1218
const firebaseConfig = {
13-
apiKey:
14-
"AIzaSyCf3OuJ3LfQIOrY_ytB-VMwPTm2jaKIBJ4",
15-
authDomain: "ubercoders.firebaseapp.com",
16-
projectId: "ubercoders",
17-
storageBucket: "ubercoders.firebasestorage.app",
18-
messagingSenderId: "648246074997",
19-
appId:
20-
"1:648246074997:web:d8724fc2c7aed70c6ee23c",
21-
measurementId: "G-02D2QNJ8P7",
19+
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
20+
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
21+
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
22+
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
23+
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
24+
appId: process.env.REACT_APP_FIREBASE_APP_ID,
25+
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,
2226
};
2327

2428
// Initialize Firebase
@@ -45,8 +49,17 @@ signupForm.addEventListener(
4549
).value;
4650

4751
function validatePassword(password) {
48-
// At least 6 characters long
49-
return password.length >= 6;
52+
const minLength = 6;
53+
const hasNumber = /\d/;
54+
const hasSpecialChar = /[!@#$%^&*(),.?":{}|<>]/;
55+
const hasUpperCase = /[A-Z]/;
56+
57+
return (
58+
password.length >= minLength &&
59+
hasNumber.test(password) &&
60+
hasSpecialChar.test(password) &&
61+
hasUpperCase.test(password)
62+
);
5063
}
5164

5265
if (!validatePassword(password)) {

script/server.js

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Adding server code to limit the number of requests from a single IP address
2+
3+
const express = require('express');
4+
const rateLimit = require('express-rate-limit');
5+
6+
const app = express();
7+
8+
const limiter = rateLimit({
9+
windowMs: 15 * 60 * 1000,
10+
// Limit is 15 minutes
11+
max: 100,
12+
// limit each IP to 100 requests per windowMs
13+
message: "Too many requests from this IP, please try again later."
14+
});
15+
16+
app.use('/api/', limiter);
17+

script/signout.js

+13-9
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,20 @@ import {
55
signOut,
66
} from "https://www.gstatic.com/firebasejs/9.16.0/firebase-auth.js";
77

8+
9+
// Its to load environment variables
10+
import dotenv from 'dotenv';
11+
dotenv.config();
12+
13+
814
const firebaseConfig = {
9-
apiKey:
10-
"AIzaSyCf3OuJ3LfQIOrY_ytB-VMwPTm2jaKIBJ4",
11-
authDomain: "ubercoders.firebaseapp.com",
12-
projectId: "ubercoders",
13-
storageBucket: "ubercoders.firebasestorage.app",
14-
messagingSenderId: "648246074997",
15-
appId:
16-
"1:648246074997:web:d8724fc2c7aed70c6ee23c",
17-
measurementId: "G-02D2QNJ8P7",
15+
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
16+
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
17+
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
18+
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
19+
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
20+
appId: process.env.REACT_APP_FIREBASE_APP_ID,
21+
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,
1822
};
1923

2024
const app = initializeApp(firebaseConfig);

0 commit comments

Comments
 (0)