Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-139331

QHttpServer penetration testing

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: P2: Important P2: Important
    • None
    • None
    • Qt Http Server

      Regarding Limitations and Security we write in our documentation (https://doc.qt.io/qt-6/qthttpserver-index.html#limitations-and-security):
      "Qt HTTP Server does not have many of the more advanced features and optimizations that general-purpose HTTP servers have. It also has not seen the same scrutiny regarding various attack vectors over the network. Use Qt HTTP Server, therefore, only for local connections or in a trusted network, and do not expose the ports to the internet."

      It would be great to test as many attack vectors ourself to see how big the problems are, to document them and possibly fix them.

      This task is a continuation and extension of QTBUG-75087: Basic protection against DDoS, flooding, brute-force.

      Setup

      QHttpServer is not a finished application but a library that needs to be completed with callbacks that actually handle the requests:

      QHttpServer server;
      
      server.route("/", [] () {
          return "hello world";
      }); 

      For the purpose of testing QHttpServer we should set up a simple server example that covers most use cases that our users might have (responding with files from disk, responding with generated data, simple responses). Also consider asynchronous callbacks and various standards (http1/1.1/2).

      Testing

      We should test the simple server example with the common attack vectors for server (needs to be researched). The server should not freeze, it should not crash, and it should keep consistent and correct with replies.

      Reporting

      We should record and report which attack vectors are potentially successful for which forms of callbacks. Make a documentation of the tools and methods used for testing and a guideline on how to repeat them. If we can harden QHttpServer internally we should do so, if specific callbacks or hardening thereof is required, we should make some remarks in the documentation.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            ayesha Ayesha Ishaq
            matthias_rauter Matthias Rauter
            Vladimir Minenko Vladimir Minenko
            Alex Blasche Alex Blasche
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes