diff --git a/README b/README
new file mode 100644
index 0000000..3a3a5a0
--- /dev/null
+++ b/README
@@ -0,0 +1,16 @@
+# cspj application
+
+## attacks
+
+1. sql injection
+2. xss
+3. command injection
+4. file inclusion attacks
+5. csrf
+6. directory traversal
+7. insecure deserialization
+8. session hijacking
+9. xml external entity injection
+10. sever side request forgery
+11. broken authentication and session management
+12. clickjacking
diff --git a/client/src/components/Generic/Layout.tsx b/client/src/components/Generic/Layout.tsx
index d2a28d9..a2b75d3 100644
--- a/client/src/components/Generic/Layout.tsx
+++ b/client/src/components/Generic/Layout.tsx
@@ -1,6 +1,18 @@
-import { Box, TextField, useTheme } from "@mui/material";
+import {
+ Box,
+ Button,
+ Container,
+ Grid2,
+ Input,
+ Switch,
+ TextField,
+ Typography,
+ useTheme,
+} from "@mui/material";
+
import { HeaderBar } from "../HeaderBar/HeaderBar";
-import { LoadingButton } from "@mui/lab";
+import { AttackItem } from "../Home/AttackItem";
+import Link from "next/link";
export const Layout = () => {
// contexts
@@ -16,20 +28,89 @@ export const Layout = () => {
}}
>
-
-
- {/* main content goes here buddy */}
- asdf
-
+ {/* main content goes here buddy */}
+
+
+
+ CSPJ Application Attacks
+
+
+ Secured version
+
+
+
+
+ {/*
+ TODO: implmenent simple ping server to check if the user entered a valid backend url
+ debounce when typing
+ update textfield color based on the response
+ */}
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
};
diff --git a/client/src/components/Home/AttackItem.tsx b/client/src/components/Home/AttackItem.tsx
new file mode 100644
index 0000000..51b1500
--- /dev/null
+++ b/client/src/components/Home/AttackItem.tsx
@@ -0,0 +1,37 @@
+import {
+ Card,
+ CardActionArea,
+ CardContent,
+ Typography,
+ useTheme,
+} from "@mui/material";
+import { FC } from "react";
+
+type AttackItemProps = {
+ attackName: string;
+};
+
+export const AttackItem: FC = ({ attackName }) => {
+ // contexts
+ const theme = useTheme();
+
+ return (
+
+ {
+ console.log("clicked");
+ }}
+ >
+
+ {attackName}
+
+
+
+ );
+};
diff --git a/client/src/contexts/ThemeContext.tsx b/client/src/contexts/ThemeContext.tsx
index 4836e1c..2a44f70 100644
--- a/client/src/contexts/ThemeContext.tsx
+++ b/client/src/contexts/ThemeContext.tsx
@@ -62,11 +62,8 @@ export const UserThemeProvider: FC = ({ children }) => {
},
};
- // font family settings
- // TODO: figure out how to bundle fonts in tauri
const fontFamily = "GoogleSans";
- // font scaling settings
const fontSize = 14;
const userTheme = createTheme({