Skip to content

DDoS attacks on our website.

Moved Security
  • We often receive DDoS attacks on our website. Could you please provide a tutorial on how to deploy it on Vercel?

  • @周林锋 DDoS attacks are typically mitigated at the ISP or Firewall level, and should not be actioned at the server level ideally - however, most of this depends on the type of DDoS attack.

    For example, Layer 2 and 3 type attacks (Data and Network from the OSI Model) should always be handled by any traversing path other than the server itself - see below

    42853c8c-8a0b-4ce2-b2b3-97c9b96bed4d-image.png

    In this case, the ISP itself, or the firewall sitting in front of the server should have mitigation processes in place to prevent this type of attack hitting your server directly. Layer 7 attacks are different in their approach, and typically target the application directly. To avoid this, you should deploy a Web Application Firewall (WAF) that can filter out these types of attacks.

    Essentially, the “easy” choice here is Cloudflare, although I note that your server is potentially located in China, so this may not be an option - although AWS (operated by Sinnet) is available - more information here

    https://www.amazonaws.cn/en/new/2021/amazon-waf-available-china/

    If you can provide more information around the infrastructure you have (not here, but via PM for security reasons), I can guide you further.

  • phenomlabundefined phenomlab moved this topic from Chitchat on
  • No response from OP so marking as closed


  • 1 Votes
    1 Posts
    112 Views
    No one has replied
  • 2 Votes
    4 Posts
    195 Views

    @Hari Ok, no issues. Keep me posted…

  • 2 Votes
    5 Posts
    169 Views

    @mathourthy Good question. They have zero effect from what I can see. It’s not going to stop them from targeting anyone else.

  • 1 Votes
    1 Posts
    94 Views
    No one has replied
  • 19 Votes
    21 Posts
    1k Views

    @crazycells this perhaps? 🙂

    terminator_endoskeleton_1020.webp

  • 3 Votes
    4 Posts
    280 Views

    @DownPW yeah, I seem to spend a large amount of my time trying to educate people that there’s no silver bullet when it comes to security.

  • 7 Votes
    13 Posts
    607 Views

    Now, “SBF” is beginning a lengthy prison sentence of 25 years for what prosecutors have described as “one of the biggest financial frauds in American history”.

    25 years for stealing billions of dollars? Seems pretty lenient to me 😠

    https://news.sky.com/story/sam-bankman-fried-disgraced-crypto-king-jailed-for-25-years-after-stealing-billions-of-dollars-from-ftx-customers-13103158

    Clearly, this early estimate was completely wrong

    The 30-year-old founder of FTX is being held on criminal charges over an alleged “brazen, multi-year” mass financial fraud, and faces up to 115 years in jail if convicted.

    I personally think that 115 years is more appropriate and even that will never compensate those that have lost their life savings because of this man’s greed and narcissism.

  • 1 Votes
    2 Posts
    265 Views

    @mike-jones Hi Mike,

    There are multiple answers to this, so I’m going to provide some of the most important ones here

    JS is a client side library, so you shouldn’t rely on it solely for validation. Any values collected by JS will need to be passed back to the PHP backend for processing, and will need to be fully sanitised first to ensure that your database is not exposed to SQL injection. In order to pass back those values into PHP, you’ll need to use something like

    <script> var myvalue = $('#id').val(); $(document).ready(function() { $.ajax({ type: "POST", url: "https://myserver/myfile.php?id=" + myvalue, success: function() { $("#targetdiv").load('myfile.php?id=myvalue #targetdiv', function() {}); }, //error: ajaxError }); return false; }); </script>

    Then collect that with PHP via a POST / GET request such as

    <?php $myvalue= $_GET['id']; echo "The value is " . $myvalue; ?>

    Of course, the above is a basic example, but is fully functional. Here, the risk level is low in the sense that you are not attempting to manipulate data, but simply request it. However, this in itself would still be vulnerable to SQL injection attack if the request is not sent as OOP (Object Orientated Programming). Here’s an example of how to get the data safely

    <?php function getid($theid) { global $db; $stmt = $db->prepare("SELECT *FROM data where id = ?"); $stmt->execute([$theid]); while ($result= $stmt->fetch(PDO::FETCH_ASSOC)){ $name = $result['name']; $address = $result['address']; $zip = $result['zip']; } return array( 'name' => $name, 'address' => $address, 'zip' => $zip ); } ?>

    Essentially, using the OOP method, we send placeholders rather than actual values. The job of the function is to check the request and automatically sanitise it to ensure we only return what is being asked for, and nothing else. This prevents typical injections such as “AND 1=1” which of course would land up returning everything which isn’t what you want at all for security reasons.

    When calling the function, you’d simply use

    <?php echo getid($myvalue); ?>

    @mike-jones said in Securing javascript -> PHP mysql calls on Website:

    i am pretty sure the user could just use the path to the php file and just type a web address into the search bar

    This is correct, although with no parameters, no data would be returned. You can actually prevent the PHP script from being called directly using something like

    <?php if(!defined('MyConst')) { die('Direct access not permitted'); } ?>

    then on the pages that you need to include it

    <?php define('MyConst', TRUE); ?>

    Obviously, access requests coming directly are not going via your chosen route, therefore, the connection will die because MyConst does not equal TRUE

    @mike-jones said in Securing javascript -> PHP mysql calls on Website:

    Would it be enough to just check if the number are a number 1-100 and if the drop down is one of the 5 specific words and then just not run the rest of the code if it doesn’t fit one of those perameters?

    In my view, no, as this will expose the PHP file to SQL injection attack without any server side checking.

    Hope this is of some use to start with. Happy to elaborate if you’d like.