Einführung

Web-Template ist eine Engine, Der in den meistens Frameworks existiert . Kleine Unternehmen benutzen er, um schnelle Implementation zu schaffen. Zudem reduziert er die Kosten der Produktion. Da er nicht viele Configrationen wie die andere Frontend-Frameworks braucht.

Vorteile Des Web-template

1- Einfach zu Benutzen

2- Die Zeit wird reduziert , was dazu führen kann , dass die Kosten der Produktion reduziert werden.

3- Er braucht nicht Zu viele Mitarbeiter

Nachteile Des Web-template

Das Konzept Der Template-Benutzung ist nicht die besten Idee , auf der die Projekte aufgebaut werden. Besonders in der große Projekte und MittleGroße Projekte. Z.B was ist der Unterschied zwischen ein Wordpress-Projekt und Programmiernder Projekt ? . Wenn es keinen Unterschied gibt , warum der Faang es nicht benutzt haben ?

Die Gründe sind :

1- Viele Bugs

2- Keine Flexibilität besonders wenn die neue Idee ergestellt werden .

3- Mangel von Bugfix-Versionen

z.B in dem CTF

Dieser CTF geht um " OS COMMAND INJECTION" . von Dem "Path traversal" kommt. da mit einem Web-Template der Python aufgebaut wird.

None
http://Api/?text=${__import__(%22os%22).popen(%22find%20/%20-name%20%27*flag*%27%202%3E/dev/null%22).read()}
None
None

Software- und Geschäftsperspektive

Als Software-Entwickler fokusiere ich auf den Process des Softwareentwicklung . Daher vermeide ich die schlechte Szenarien. Beispieleweiße wenn dieses Bug in dem Web-template nicht behoben wird , wird das ganze Unternehmen werden ein Problem haben. Aber falls die Situation ist normal (mit normalem Code) , die Progrmmierer können einfach das Bug beheben.

nur software-perspektive

In softwareentwicklung sind "Design pattern" und "Design system" sehr wichtig. Einer ihrer Vorteile ist das Einfach des Fehlerfindung. Wenn der system sehr organiziert ist, wird es einfach die fehler zu finden. Z.B im C# gibt es "MVC Desgin Pattern". Beim C# benutzen wir "OOP" , Bei der Nutzung einfacher den Fehler zu finden und zu beheben.

None

Verteidigen gegen dem Bug

1- Filtration

def filter_input(user_input: str) -> str:
    blocked_patterns = [
        "{{", "}}",
        "${", "}",
        "__",
        "import",
        "os",
        "eval",
        "exec",
        "class",
        "self",
    ]

    for pattern in blocked_patterns:
        if pattern.lower() in user_input.lower():
            raise ValueError("Invalid input detected")

    return user_input

2- Keine direkte Ausführung in dem Code

zB

import os

user_input = input("Enter command: ")
os.system(user_input)

Geschrieben von Mahmoud Mabrouk