பாதுகாப்பு
WebdriverIO தீர்வுகளை வழங்கும்போது பாதுகாப்பு அம்சத்தை கருத்தில் கொண்டுள்ளது. உங்கள் சோதனையை சிறப்பாக பாதுகாக்க கீழே சில வழிகள் உள்ளன.
சிறந்த நடைமுறைகள்
- உங்கள் நிறுவனத்திற்கு தெளிவான உரையில் வெளிப்படுத்தப்பட்டால் தீங்கு விளைவிக்கக்கூடிய உணர்திறன் தரவை ஒருபோதும் ஹார்ட்கோட் செய்யாதீர்கள்.
- சாவிகள் மற்றும் கடவுச்சொற்களை பாதுகாப்பாக சேமிக்க ஒரு பொறிமுறையை (vault போன்ற) பயன்படுத்தி, உங்கள் முடிவிலிருந்து-முடிவு சோதனைகளைத் தொடங்கும்போது அவற்றை மீட்டெடுக்கவும்.
- பதிவுகளில் மற்றும் கிளவுட் வழங்குநரால் எந்த உணர்திறன் தரவும் வெளிப்படுத்தப்படவில்லை என்பதை சரிபார்க்கவும், எடுத்துக்காட்டாக நெட்வொர்க் பதிவுகளில் அங்கீகார டோக்கன்கள்.
சோதனை தரவுக்கும் கூட, தவறான கைகளில், தீங்கிழைக்கும் நபர் தகவலைப் பெறக்கூடுமா அல்லது அந்த வளங்களை தீங்கிழைக்கும் நோக்கத்துடன் பயன்படுத்தக்கூடுமா என்பதைக் கேட்பது அவசியம்.
உணர்திறன் தரவை மறைத்தல்
உங்கள் சோதனையின் போது உணர்திறன் தரவைப் பயன்படுத்தினால், அவை அனைவருக்கும் தெரியாமல் இருப்பதை உறுதிசெய்வது அவசியம், எடுத்துக்காட்டாக பதிவுகளில். மேலும், கிளவுட் வழங்குநரைப் பயன்படுத்தும்போது, தனிப்பட்ட சாவிகள் அடிக்கடி சம்பந்தப்படுகின்றன. இந்த தகவல் பதிவுகள், அறிக்கையாளர்கள் மற்றும் பிற தொடர்புப்புள்ளிகளிலிருந்து மறைக்கப்பட வேண்டும். பின்வரும் சில மறைப்பு தீர்வுகளை வழங்குகிறது, இது அந்த மதிப்புகளை வெளிப்படுத்தாமல் சோதனைகளை இயக்க உதவுகிறது.
WebDriverIO
கட்டளைகளின் உ ரை மதிப்பை மறைத்தல்
addValue
மற்றும் setValue
கட்டளைகள் பதிவுகளில் மற்றும் அறிக்கையாளர்களில் மறைக்க பூலியன் மாஸ்க் மதிப்பை ஆதரிக்கின்றன. மேலும், செயல்திறன் கருவிகள் மற்றும் மூன்றாம் தரப்பு கருவிகள் போன்ற பிற கருவிகளும் மாஸ்க் பதிப்பைப் பெறும், இது பாதுகாப்பை மேம்படுத்துகிறது.
எடுத்துக்காட்டாக, நீங்கள் உண்மையான உற்பத்தி பயனரைப் பயன்படுத்தி, மறைக்க விரும்பும் கடவுச்சொல்லை உள்ளிட வேண்டுமென்றால், பின்வருமாறு இப்போது சாத்தியமாகும்:
async enterPassword(userPassword) {
const passwordInputElement = $('Password');
// Get focus
await passwordInputElement.click();
await passwordInputElement.setValue(userPassword, { mask: true });
}
மேலே உள்ளது WDIO பதிவுகளில் இருந்து உரை மதிப்பை பின்வருமாறு மறைக்கும்:
பதிவுகள் எடுத்துக்காட்டு:
INFO webdriver: DATA { text: "**MASKED**" }
Allure அறிக்கையாளர்கள் போன்ற அறிக்கையாளர்கள் மற்றும் BrowserStack இலிருந்து Percy போன்ற மூன்றாம் தரப்பு கருவிகளும் மறைக்கப்பட்ட பதிப்பைக் கையாளும். சரியான Appium பதிப்புடன் இணைந்து, Appium பதிவுகளும் உங்கள் உணர்திறன் தரவிலிருந்து விலக்கப்படும்.
வரம்புகள்:
- Appium இல், நாம் தகவலை மறைக்க கேட்டாலும் கூடுதல் செருகுநிரல்கள் கசிய முடியும்.
- கிளவுட் வழங்குநர்கள் HTTP பதிவுக்காக ப்ராக்ஸியைப் பயன்படுத்தலாம், இது அமைக்கப்பட்ட மாஸ்க் பொறிமுறையை தவிர்க்கிறது.
getValue
கட்டளை ஆதரிக்கப்படவில்லை. மேலும், அதே உறுப்பில் பயன்படுத்தப்பட்டால்,addValue
அல்லதுsetValue
பயன்படுத்தும்போது மறைக்க கருதப்பட்ட மதிப்பை அது வெளிப்படுத்தலாம்.
தேவையான குறைந்தபட்ச பதிப்பு:
- WDIO v9.15.0
- Appium v3.0.0
WDIO பதிவுகளில் மறைத்தல்
maskingPatterns
உள்ளமைவைப் பயன்படுத்தி, WDIO பதிவுகளில் இருந்து உணர்திறன் தகவலை மறைக்கலாம். இருப்பினும், Appium பதிவுகள் உள்ளடக்கப்படவில்லை.
எடுத்துக்காட்டாக, நீங்கள் கிளவுட் வழங்குநரைப் பயன்படுத்தி, தகவல் நிலையைப் பயன்படுத்தினால், கீழே காட்டப்பட்டுள்ளபடி பயனரின் சாவியை நீங்கள் "கசியக்கூடும்":
INFO @wdio/local-runner: Start worker 0-0 with arg: ./wdio.conf.ts --user=cloud_user --key=myCloudSecretExposedKey --spec myTest.test.ts
இதை எதிர்கொள்ள, நாம் வழக்கமான வெளிப்பாடு '--key=([^ ]*)'
ஐ அனுப்பலாம், இப்போது பதிவுகளில் நீங்கள் பார்ப்பது
INFO @wdio/local-runner: Start worker 0-0 with arg: ./wdio.conf.ts --user=cloud_user --key=**MASKED** --spec myTest.test.ts
உள்ளமைவின் maskingPatterns
புலத்திற்கு வழக்கமான வெளிப்பாட்டை வழங்குவதன் மூலம் மேலே உள்ளதை நீங்கள் அடையலாம்.
- பல வழக்கமான வெளிப்பாடுகளுக்கு, ஒற்றை சரம் பயன்படுத்தவும், ஆனால் காற்புள்ளியால் பிரிக்கப்பட்ட மதிப்புடன்.
- மறைத்தல் முறைகள் பற்றிய கூடுதல் விவரங்களுக்கு, WDIO லாகர் README இல் மறைத்தல் முறைகள் பிரிவைப் பார்க்கவும்.
export const config: WebdriverIO.Config = {
specs: [...],
capabilities: [{...}],
services: ['lighthouse'],
/**
* test configurations
*/
logLevel: 'info',
maskingPatterns: '/--key=([^ ]*)/',
framework: 'mocha',
outputDir: __dirname,
reporters: ['spec'],
mochaOpts: {
ui: 'bdd',
timeout: 60000
}
}
தேவையான குறைந்தபட்ச பதிப்பு:
- WDIO v9.15.0
WDIO லாகர்களை முடக்குதல்
உணர்திறன் தரவு பதிவு செய்வதைத் தடுக்க மற்றொரு வழி பதிவு நிலையைக் குறைப்பது அல்லது அமைதியாக்குவது அல்லது லாகரை முடக்குவது. இதை பின்வருமாறு அடையலாம்:
import logger from '@wdio/logger';
/**
* Set the logger level of the WDIO logger to 'silent' before *running a promise, which helps hide sensitive information in the logs.
*/
export const withSilentLogger = async <T>(promise: () => Promise<T>): Promise<T> => {
const webdriverLogLevel = driver.options.logLevel ?? 'error';
try {
logger.setLevel('webdriver', 'silent');
return await promise();
} finally {
logger.setLevel('webdriver', webdriverLogLevel);
}
};
மூன்றாம் தரப்பு தீர்வுகள்
Appium
Appium அதன் சொந்த மறைப்பு தீர்வை வழங்குகிறது; Log filter ஐப் பார்க்கவும்
- அவர்களின் தீர்வைப் பயன்படுத்துவது சிக்கலாக இருக்கலாம். ஒரு வழி, சாத்தியமிருந்தால், உங்கள் சரத்தில்
@mask@
போன்ற டோக்கனை அனுப்பி, அதை வழக்கமான வெளிப்பாடாகப் பயன்படுத்துவது - சில Appium பதிப்புகளில், மதிப்புகளும் ஒவ்வொரு எழுத்தும் காற்புள்ளியால் பிரிக்கப்பட்டு பதிவு செய்யப்படுகின்றன, எனவே நாம் கவனமாக இருக்க வேண்டும்.
- துரதிருஷ்டவசமாக, BrowserStack இந்த தீர்வை ஆதரிக்கவில்லை, ஆனால் இது இன்னும் உள்ளூரில் பயனுள்ளதாக உள்ளது
முன்பு குறிப்பிட்ட @mask@
எடுத்துக்காட்டைப் பயன்படுத்தி, appiumMaskLogFilters.json
என்ற பெயரில் பின்வரும் JSON கோப்பைப் பயன்படுத்தலாம்
[
{
"pattern": "@mask@(.*)",
"flags": "s",
"replacer": "**MASKED**"
},
{
"pattern": "\\[(\\\"@\\\",\\\"m\\\",\\\"a\\\",\\\"s\\\",\\\"k\\\",\\\"@\\\",\\S+)\\]",
"flags": "s",
"replacer": "[*,*,M,A,S,K,E,D,*,*]"
}
]
பின்னர் JSON கோப்பு பெயரை appium சேவை உள்ளமைவில் logFilters
புலத்திற்கு அனுப்பவும்:
import { AppiumServerArguments, AppiumServiceConfig } from '@wdio/appium-service';
import { ServiceEntry } from '@wdio/types/build/Services';
const appium = [
'appium',
{
args: {
log: './logs/appium.log',
logFilters: './appiumMaskLogFilters.json',
} satisfies AppiumServerArguments,
} satisfies AppiumServiceConfig,
] satisfies ServiceEntry;
BrowserStack
BrowserStack சில தரவுகளை மறைக்க சில அளவிலான மறைத்தலை வழங்குகிறது; hide sensitive data ஐப் பார்க்கவும்
- துரதிருஷ்டவசமாக, இந்த தீர்வு எல்லாம்-அல்லது-ஒன்றுமில்லை, எனவே வழங்கப்பட்ட கட்டளைகளின் அனைத்து உரை மதிப்புகளும் மறைக்கப்படும்.