Блог пользователя Ascension36

Автор Ascension36, история, 5 месяцев назад, По-английски

Hello, Codeforces!

Some of you may already know about the CF Cheater Highlighter extension — an open-source browser extension created by macaquedev and AksLolCoding that highlights known cheaters directly on Codeforces pages. The project has been around on GitHub for a while, but installing it required manually loading an unpacked extension.

I've now hosted it on both the Chrome Web Store and Firefox Add-ons, so you can install it in one click.

What does the extension do?

Once installed, the extension automatically highlights flagged handles with a red background anywhere on Codeforces — standings, profiles, blogs, problem pages, you name it. Flagged users also get a "CHEATER" label appended to their handle so they're impossible to miss.

The cheater data comes from the CF Cheater Database, a community-driven platform where users can report suspected cheaters with evidence. All reports are admin-reviewed before anyone gets flagged. You can also search the database or appeal a mark if you think it was made in error.

The extension fetches the latest list in the background and caches it locally, so it's fast and requires zero configuration. Just install and go.

Install

Credits & Thanks

All credit for building this project goes to macaquedev and AksLolCoding — they designed and developed both the extension and the cheater database. I just handled getting it published on the Chrome and Firefox extension stores so it's easier for everyone to install.


If you run into issues or have suggestions, feel free to open an issue on GitHub or drop a comment below.

  • Проголосовать: нравится
  • +15
  • Проголосовать: не нравится

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

We really needed this kind of threat for them I guess at this point.

»
5 месяцев назад, скрыть # |
Rev. 3  
Проголосовать: нравится +9 Проголосовать: не нравится

The tool is definitely good and the idea is nice. But I am a bit concerned about the verification. From what I’ve seen, many reports seem to be just on skipped contests.

Of course, in many cases skipped problems do indicate cheating, and there have been several such cases in the past But at the same time we’ve also seen genuine contestants skip problems in contests(for example

https://codeforces.me/blog/entry/108036 https://codeforces.me/blog/entry/93405 https://codeforces.me/blog/entry/132725 ). Even some ICPC finalists have been reported there just because they had skipped problems, which doesn’t necessarily mean cheating.

Also tagging someone’s account like this publicly doesn’t feel very good if the evidence isn’t very strong

  • »
    »
    5 месяцев назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    many reports seem to be just on skipped contests

    I (or other people on my team) hand-verify every single user in the database — usually, if a report is submitted with just "skipped contest" as an evidence, I will reject it almost 100% of the time.

    Reports are absolutely not just on skipped contests. Everyone who is added has been added for a reason. We are fallible, of course, which means that we often receive appeals, and sometimes accept them. However, it's absolutely disingenuous to imply that we simply accept "skipped contests" as sufficient proof of cheating when I've stated in many past comments and blogs that it absolutely is not, and I do not accept it.

    • »
      »
      »
      5 месяцев назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      I agree skipped contests alone shouldn’t be treated as proof, and it’s good that you verify reports.

      But I’ve still seen some genuine accounts get flagged. One of my friends has good experience, has even participated in several proctored contests and in ICPC too and performed well there. I’ve checked his submissions too, and from what I can see he was mainly reported because of skipped problems.

      He also submitted an appeal months ago but hasn’t received any response yet, so cases like this are a bit concerning.

      • »
        »
        »
        »
        5 месяцев назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        Send me your friend's username. If you think they're legit, I'll look over it. It's very likely I already declined the appeal though.

        • »
          »
          »
          »
          »
          5 месяцев назад, скрыть # ^ |
          Rev. 2  
          Проголосовать: нравится 0 Проголосовать: не нравится

          Only if we could do this by mapping the accounts with there contact no.s (In codeforces as well as the Datasheet) .... Otherwise they can make as many accounts as possible in codeforces .... I am sure MikeMirzayanov hav heard it long long back but not implementing it .... Don't know why !

          • »
            »
            »
            »
            »
            »
            5 месяцев назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится

            yep you're right......

          • »
            »
            »
            »
            »
            »
            5 месяцев назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится

            Why not restructure the system ?

            The best way to stop cheating is to prevent it from happening in the first place.

          • »
            »
            »
            »
            »
            »
            5 месяцев назад, скрыть # ^ |
            Rev. 2  
            Проголосовать: нравится 0 Проголосовать: не нравится

            What I actually mean is...

            There is a pretty good way to stop almost most cheating IG, but I doubt CF would ever follow that cz it would create a lot of load on the system but though it is possible. For example, a structure like LeetCode or CodeChef, with a built in code editor, along with some extra features and a few rule changes.

            Rules:

            1. Googling is allowed, but copying and pasting code from online sources is not.
            2. All code must be written directly on the website.
            3. Users can store their own code snippets on CF.
            4. Every keystroke will be recorded in the code editor. If any part of the submitted code doesn’t match the typing history (means pasted), the system will check it against previously stored snippets.
            5. The system should tolerate some mismatches ( x to 0)%. Users can still test their code locally by manually copying it from the browser.
            6. Typing speed could also be tracked if needed, but I don’t think it’s necessary.

            So there would be one extra file upload, and after the system checks the file, it can be discarded also for the load issue, the system can perform these checks later, during less busy times and yeah, it’ll take a lot of testing and extra work

            • »
              »
              »
              »
              »
              »
              »
              5 месяцев назад, скрыть # ^ |
               
              Проголосовать: нравится 0 Проголосовать: не нравится

              That's a nice idea!

              But I think it will just slow the cheaters down, they can simply re-write by hand instead of directly copy -pasting.

              Also i don't think you can efficiently distinguish between using a template and copying code from an LLM!

              • »
                »
                »
                »
                »
                »
                »
                »
                5 месяцев назад, скрыть # ^ |
                 
                Проголосовать: нравится +1 Проголосовать: не нравится

                Actually, at the time I thought it was a good idea.I commented it out of excitement. The real issue is real time diff list updating, which would definitely put a strain on the network infrastructure. If we offload things to the client side, it becomes easy to hack and ai could generate both files . Even hashing wouldn’t work, since the hash function would have to run on the client side.

                But slowing down cheaters is a win win , since writing code like that is slow and boring.

»
5 месяцев назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

Much appreciated — thanks for publicising it! I've been really busy so very much appreciate other people taking an interest in this project and helping with it.