[PR #1044] [MERGED] [KnownUsernameField] Entries update (Yandex) #39808

Closed
opened 2026-04-23 18:44:16 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/1044
Author: @contribucious
Created: 8/19/2020
Status: Merged
Merged: 8/20/2020
Merged by: @cscharf

Base: masterHead: KnownUsernameField--entries-update--Yandex


📝 Commits (1)

  • 0451aad [KnownUsernameField] Entries update (Yandex)

📊 Changes

1 file changed (+14 additions, -0 deletions)

View changed files

📝 src/Android/Accessibility/AccessibilityHelpers.cs (+14 -0)

📄 Description

This:

  • adds all missing entries for Yandex.
    ↪️ (Exhaustive list of Yandex domain names obtained by contacting their support.)
     
     

Yandex support response

Part of mail 1 (list of Yandex TLDs) ...  

Here is a list of all domain zones used by Yandex:
az, co.il, com, com.am, com.ge, com.tr, ee, fi, fr, pl, ru, ua, by, kg, kz, lt, lv, md, tj, tm, uz

If you have any questions, please contact us and we will try to help!

 
Part of mail 2 (intercompatibility) ...  

The user can log in to an account in any domain zone. In fact, the authorization requires only username, so you can enter with any email alias.

 
Part of mail 3 (various) ...  

1) Just for information: for each TLD you listed, is an email address from the SAME TLD creatable? e.g. https://passport.yandex.md -> user_nickname@yandex.md

Actually yes, but in some regions, such as Russia, we offer users several additional aliases, that the user can use after registration at their own discretion.
In other words, the user can use the following email addresses login@yandex.ua, but using yandex.ru and living in Russia.

2) Are there other domain names "of the Yandex universe" that can be associated to all these numerous "yandex.tld" domains to signal to Bitwarden users that a login is "compatible with this universe"? I already see at least one: https://ya.ru. Others, according to you? Note: I am talking about domains here, not subdomains.

Apparently, only the TLDs that I specified earlier are used for logging in, as well as a shorter domain "ya.ru".

3) Finally, may I also quote you regarding your upcoming answer (or any other subsequent answers to our conversation)?

Support responses are public, so you can quote us at your discretion :)

 
💡 Note that regarding the second question, the ya.ru will only be added to the PR "server/EquivalentDomains" and not to the PR "mobile/KnownUsernameField".
↪️ Because there is no login page on the shorter domain name ya.ru (i.e. no passport.ya.ru).

 

Proof of proper functioning

Bash script to test (one line version)

View me ...  
UA_DESKTOP="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"; UA_MOBILE="Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Mobile Safari/537.36"; UA_LIST=(UA_DESKTOP UA_MOBILE); TLDs=(az by co.il com com.am com.ge com.tr ee fi fr kg kz lt lv md pl ru tj tm ua uz); for TLD in "${TLDs[@]}"; do echo -e "\nTesting https://passport.yandex.${TLD}/auth ..."; for UA in "${UA_LIST[@]}"; do echo "> using ${UA}:"; wget -qO- "https://passport.yandex.${TLD}/auth" -U "${!UA}" | grep -P -o '<input[^>]*name="login"[^>]*>' | grep -P -o ' id="[^"]+"'; sleep 2; done; done;

Bash script to test (readable version)

View me ...  
#!/bin/bash

UA_DESKTOP="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
UA_MOBILE="Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Mobile Safari/537.36"
UA_LIST=(UA_DESKTOP UA_MOBILE)
TLDs=(az by co.il com com.am com.ge com.tr ee fi fr kg kz lt lv md pl ru tj tm ua uz)

for TLD in "${TLDs[@]}"; do
  echo -e "\nTesting https://passport.yandex.${TLD}/auth ..."

  for UA in "${UA_LIST[@]}"; do
    echo "> using ${UA}:"
    wget -qO- "https://passport.yandex.${TLD}/auth" -U "${!UA}" | grep -P -o '<input[^>]*name="login"[^>]*>' | grep -P -o ' id="[^"]+"'
    sleep 2
  done
done

Result of the Bash script

View me ...  
Testing https://passport.yandex.az/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.by/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.co.il/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.com/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.com.am/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.com.ge/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.com.tr/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.ee/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.fi/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.fr/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.kg/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.kz/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.lt/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.lv/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.md/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.pl/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.ru/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.tj/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.tm/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.ua/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Testing https://passport.yandex.uz/auth ...
> using UA_DESKTOP:
 id="passp-field-login"
> using UA_MOBILE:
 id="passp-field-login"

Others

View me ...

User agents used coming from:

➡️ https://www.whatismybrowser.com/guides/the-latest-user-agent/chrome

List of the 21 Yandex Passport links:

https://passport.yandex.az
https://passport.yandex.by
https://passport.yandex.co.il
https://passport.yandex.com
https://passport.yandex.com.am
https://passport.yandex.com.ge
https://passport.yandex.com.tr
https://passport.yandex.ee
https://passport.yandex.fi
https://passport.yandex.fr
https://passport.yandex.kg
https://passport.yandex.kz
https://passport.yandex.lt
https://passport.yandex.lv
https://passport.yandex.md
https://passport.yandex.pl
https://passport.yandex.ru
https://passport.yandex.tj
https://passport.yandex.tm
https://passport.yandex.ua
https://passport.yandex.uz

 

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/1044 **Author:** [@contribucious](https://github.com/contribucious) **Created:** 8/19/2020 **Status:** ✅ Merged **Merged:** 8/20/2020 **Merged by:** [@cscharf](https://github.com/cscharf) **Base:** `master` ← **Head:** `KnownUsernameField--entries-update--Yandex` --- ### 📝 Commits (1) - [`0451aad`](https://github.com/bitwarden/android/commit/0451aad485eb2e40b1f8fb1c658c1fdd444fe4a3) [KnownUsernameField] Entries update (Yandex) ### 📊 Changes **1 file changed** (+14 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `src/Android/Accessibility/AccessibilityHelpers.cs` (+14 -0) </details> ### 📄 Description ### This: - adds all missing entries for `Yandex`. :arrow_right_hook: _(Exhaustive list of Yandex domain names obtained by contacting their support.)_ &nbsp; &nbsp; # Yandex support response <details> <summary>Part of mail 1 (list of Yandex TLDs) ...</summary> &nbsp; > Here is a list of all domain zones used by Yandex: > az, co.il, com, com.am, com.ge, com.tr, ee, fi, fr, pl, ru, ua, by, kg, kz, lt, lv, md, tj, tm, uz > > If you have any questions, please contact us and we will try to help! </details> &nbsp; <details> <summary>Part of mail 2 (intercompatibility) ...</summary> &nbsp; > The user can log in to an account in any domain zone. In fact, the authorization requires only username, so you can enter with any email alias. </details> &nbsp; <details> <summary>Part of mail 3 (various) ...</summary> &nbsp; > **1) Just for information: for each TLD you listed, is an email address from the SAME TLD creatable? e.g. https://passport.yandex.md -> user_nickname@yandex.md** > > Actually yes, but in some regions, such as Russia, we offer users several additional aliases, that the user can use after registration at their own discretion. > In other words, the user can use the following email addresses login@yandex.ua, but using yandex.ru and living in Russia. > **2) Are there other domain names "of the Yandex universe" that can be associated to all these numerous "yandex.tld" domains to signal to Bitwarden users that a login is "compatible with this universe"? I already see at least one: https://ya.ru. Others, according to you? Note: I am talking about domains here, not subdomains.** > > Apparently, only the TLDs that I specified earlier are used for logging in, as well as a shorter domain "ya.ru". > **3) Finally, may I also quote you regarding your upcoming answer (or any other subsequent answers to our conversation)?** > > Support responses are public, so you can quote us at your discretion :) &nbsp; :bulb: Note that regarding the second question, the `ya.ru` will only be added to the PR "server/EquivalentDomains" and not to the PR "mobile/KnownUsernameField". :arrow_right_hook: Because there is no login page on the shorter domain name `ya.ru` (i.e. no `passport.ya.ru`). </details> &nbsp; # Proof of proper functioning ### Bash script to test (one line version) <details> <summary>View me ...</summary> &nbsp; ```bash UA_DESKTOP="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"; UA_MOBILE="Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Mobile Safari/537.36"; UA_LIST=(UA_DESKTOP UA_MOBILE); TLDs=(az by co.il com com.am com.ge com.tr ee fi fr kg kz lt lv md pl ru tj tm ua uz); for TLD in "${TLDs[@]}"; do echo -e "\nTesting https://passport.yandex.${TLD}/auth ..."; for UA in "${UA_LIST[@]}"; do echo "> using ${UA}:"; wget -qO- "https://passport.yandex.${TLD}/auth" -U "${!UA}" | grep -P -o '<input[^>]*name="login"[^>]*>' | grep -P -o ' id="[^"]+"'; sleep 2; done; done; ``` </details> ### Bash script to test (readable version) <details> <summary>View me ...</summary> &nbsp; ```bash #!/bin/bash UA_DESKTOP="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36" UA_MOBILE="Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Mobile Safari/537.36" UA_LIST=(UA_DESKTOP UA_MOBILE) TLDs=(az by co.il com com.am com.ge com.tr ee fi fr kg kz lt lv md pl ru tj tm ua uz) for TLD in "${TLDs[@]}"; do echo -e "\nTesting https://passport.yandex.${TLD}/auth ..." for UA in "${UA_LIST[@]}"; do echo "> using ${UA}:" wget -qO- "https://passport.yandex.${TLD}/auth" -U "${!UA}" | grep -P -o '<input[^>]*name="login"[^>]*>' | grep -P -o ' id="[^"]+"' sleep 2 done done ``` </details> ### Result of the Bash script <details> <summary>View me ...</summary> &nbsp; ```bash Testing https://passport.yandex.az/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.by/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.co.il/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.com/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.com.am/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.com.ge/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.com.tr/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.ee/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.fi/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.fr/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.kg/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.kz/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.lt/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.lv/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.md/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.pl/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.ru/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.tj/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.tm/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.ua/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" Testing https://passport.yandex.uz/auth ... > using UA_DESKTOP: id="passp-field-login" > using UA_MOBILE: id="passp-field-login" ``` </details> ### Others <details> <summary>View me ...</summary> #### User agents used coming from: :arrow_right: https://www.whatismybrowser.com/guides/the-latest-user-agent/chrome #### List of the 21 Yandex Passport links: https://passport.yandex.az https://passport.yandex.by https://passport.yandex.co.il https://passport.yandex.com https://passport.yandex.com.am https://passport.yandex.com.ge https://passport.yandex.com.tr https://passport.yandex.ee https://passport.yandex.fi https://passport.yandex.fr https://passport.yandex.kg https://passport.yandex.kz https://passport.yandex.lt https://passport.yandex.lv https://passport.yandex.md https://passport.yandex.pl https://passport.yandex.ru https://passport.yandex.tj https://passport.yandex.tm https://passport.yandex.ua https://passport.yandex.uz </details> &nbsp; --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-23 18:44:16 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#39808