Informatik

1.137 Mitglieder, 5.032 Beiträge

Ist mein Ansatz sicher genug gegen SQL-Injection und andere Angriffe, oder sollte ich zusätzliche Sicherheitsmaßnahmen ergreifen?

<?php session_start(); include(&apos;connection.php&apos;); if (!isset($_SESSION[&apos;username&apos;])) { die("Session abgelaufen. Bitte loggen Sie sich erneut ein."); } $username_input = $_SESSION[&apos;username&apos;]; // SQL-Abfrage abhängig davon, ob der Benutzer Trainer ist if ($_SESSION["Trainer"] == false) { $sql = " SELECT u.username, k.kursbezeichnung, i.nachname AS trainer_name, d.path, d.displayname FROM user u JOIN kurs k ON u.kurs_idkurs = k.idkurs JOIN internal_user i ON k.internal_user_idinternal = i.idinternal JOIN dokumente d ON d.kurs_idkurs = k.idkurs WHERE u.username = ? "; } else { $sql = " SELECT u.username, k.kursbezeichnung, i.nachname AS trainer_name, d.path, d.displayname FROM internal_user u JOIN kurs k ON u.idinternal = k.internal_user_idinternal JOIN internal_user i ON k.internal_user_idinternal = i.idinternal JOIN dokumente d ON d.kurs_idkurs = k.idkurs WHERE u.username = ? "; } if ($stmt = mysqli_prepare($conn, $sql)) { mysqli_stmt_bind_param($stmt, "s", $username_input); if (mysqli_stmt_execute($stmt)) { mysqli_stmt_store_result($stmt); mysqli_stmt_bind_result($stmt, $username, $kursbezeichnung, $trainer_name, $path, $displayname); $documents = []; $course_name = null; while (mysqli_stmt_fetch($stmt)) { $course_name = $kursbezeichnung; $documents[] = [ &apos;trainer_name&apos; => $trainer_name, &apos;path&apos; => $path, &apos;displayname&apos; => $displayname ]; } } else { die("Fehler bei der Abfrageausführung: " . mysqli_error($conn)); } mysqli_stmt_close($stmt); } else { die("Fehler bei der Abfragevorbereitung: " . mysqli_error($conn)); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Kursübersicht</title> <style> body { font-family: Arial, sans-serif; background-color: #f4f4f9; margin: 0; padding: 20px; text-align: center; } .course-container { margin-top: 20px; } h1 { font-size: 2em; color: #2c3e50; } h2 { font-size: 1.5em; color: #2980b9; } h3 { font-size: 1.2em; color: #7f8c8d; } .document-list { list-style-type: none; padding: 0; } .document-list li { margin-bottom: 10px; } .document-list li a { text-decoration: none; color: #3498db; font-weight: bold; } .document-list li a:hover { color: #e74c3c; } </style> </head> <body> <h1>Willkommen, <?= htmlspecialchars($_SESSION[&apos;vorname&apos;] ?? &apos;Nutzer&apos;) ?>!</h1> <?php if ($course_name): ?> <div class="course-container"> <h2>Kurs: <?= htmlspecialchars($course_name) ?></h2> <h3>Trainer: <?= htmlspecialchars($documents[0][&apos;trainer_name&apos;]) ?></h3> <h3>Dokumente für diesen Kurs:</h3> <ul class="document-list"> <?php foreach ($documents as $doc): ?> <li><a href="<?= htmlspecialchars($doc[&apos;path&apos;]) ?>" download><?= htmlspecialchars($doc[&apos;displayname&apos;]) ?></a></li> <?php endforeach; ?> </ul> </div> <?php else: ?> <p>Keine Dokumente für den Benutzer gefunden.</p> <?php endif; ?> </body> </html>

IT Projekt, welches Diagramm für Datenübertragung verwenden?

Im System A sollen Daten erfasst werden. Diese erfassten Daten sollen zusammen mit anderen bereits vorhandenen Daten nach System B geschickt werden. Die Übertragung erfolgt mit XML. Im System B werden die Daten verarbeitet und dann dem System C übergeben. Auch mit XML Ich möchte in einem Diagramm darstellen, welche Daten im System A erfasst werden, welche Daten nach System B geschickt werden. Wie die Daten im System B verändert werden. Und wie die veränderten Daten Aussehen, die nach System C übertragen werden. Welche Diagrammtyp soll ich verwenden? Gibt es ein geeignetes UML Diagramm?

Tcp/Ip?

Hallo, Ich habe Fragen zu folgenden zwei Teilabschnitten: Ich verstehe leider bei der Anwendungsschicht gar nicht, was mit "Kommunikationsverbindungen addressierr werden" gemeint wird. Dann wollte ich folgende zwei Fragen fragen. Was ist genau die Anwendungsschicht (das ist die Schicht, die ich nicht so ganz verstehe). Irgebdwie ist das ja die Schicht, auf der man die jeweilige Anwendung sieht oder. Aber inwiefern hat das jetzt mit dem Zugang zum Internet oder der Kommunikation zu tun?
Bild zum Beitrag

TCP/IP Referenzmodell Verständnisfragen?

Hallo, ich habe ein paar kleine Frage zu dem TCP IP Referenzmodell und wäre sehr glücklich über Antworten, Erstmal wollte ich fragen, inwiefern sich das OSI vom TCP/IP Modell unterscheidet. Im Internet fande ich folgende Differenzierungen: "TCP/IP und das sogenannte OSI-Modell sind die gängigsten Kommunikationsprotokolle innerhalb von Netzwerken. Das OSI-Modell legt dabei fest, wie Anwendungen miteinander kommunizieren können. TCP/IP dagegen ist dafür verantwortlich, Verbindungen aufzubauen und Netzwerke zu verbinden." ich dachte jedoch immer, dass beide einfach für die Datenübertragung verantwortlich sind, gibt es hierbei wirklich einen Unterschied (außer die Anzahl an Schichten)? Ist es nicht sogar so, dass 3 Schichten vom Osimodell in einer Schicht beim TCP IP Modell zusammengefasst werden? Dann wollte ich folgendes zu folgendem Abschnitt fragen "Die Netzzugangsschicht sorgt für die physische Verbindung von Subnetzen. Das kann zum Beispiel dein WLAN zu Hause sein, welches sich über einen Router mit dem Internet verbindet. Protokolle der untersten Schicht sind unter anderem das Ethernet (Kabel) oder IEEE 802.11 (Funk)." Was sind die sogenannten Subnetze? Und was heißt, "physische Verbindung" in diesem Sachzusammenhang? "Um spezifische Anwendungen eines Rechners zu unterscheiden, müssen ihre Kommunikationsverbindungen adressiert werden. Dafür sorgen Nummern, die sogenannten TCP- und UDP-Ports." Was meint man hierbei mit " Kommunikationsverbindungen adressieren"? Angeben, um was für eine Art App es sich handelt? Außerdem wollte ich fragen, was der Unterschied zwischen dem World WIbe Web und dem Internet ist. Das WWW ist ja quasi ein hypertext basiertes dokument, welches zu all möglichen Webseiten führt, oder? Und im Internet gibt es ganz viele zentrale Computer, die miteinander vernetzt sind und Informationen bereitstellen? Dann wollte ich noch etwas Allgemeines zum TCP/IP Modell fragen. Also das TCP/IP Referenzmodell ist eine Veranschaulichung, wie Daten übertragen werden. Die unterste Schicht ist ja die Netzugangsschicht. Hier werden die in den ober liegenden Schichten gespeicherten Informationen in elektronische Bits umgewandelt. Nur verstehe ich nicht so ganz, inwiefern kann man das Modell so vereinfacht annehmen: Jede Schicht hat ja Protokolle, die bestimmte Aufgaben haben, ist es jetzt wirklich so, dass er die Protokolle der obersten, dann der nächst untersten und so weiter agieren? Außerdem ist es mir etwas schwer gefallen, die Anwendungsschicht (http) zu verstehen, sind das einfach die Anwendungen, die man sieht? weil http steht ja für hyper transport protocol, also der Transport von Informationen, wodurch ja beispielsweise eine Seite abgebildet wird. Ich danke ganz herzlich!