/dev/null
前往频道在 Telegram
| دستمو گذاشتم رو این کار ، قلبمو گذاشتم. | هر new ای را delete ای ست و پس از آن null کردنی (:
显示更多323
订阅者
无数据24 小时
+37 天
+230 天
帖子存档
323
آقا دیدم این مبحث معماری کامپیوتر جذابه 🦦❤️
با یه مثال مبگم
همینطور که تو شکل میبینین یه خط تولید ماشین رو شکل داره نشون میده که یه ماشین چند مرحله داره واسه ی تولید شدن مثلا میتونه ساخت بدنه باشه و بعدش رنگ و ...
دقیقا مثل اجرای دستورات تویه کامپیوتر که از fetch ( فراخوانی از حافظه ) شروع و بعدش Decode ( کد گشایی دستورات ) و بعدش محاسبه effective address ( که نشون میده دستورات میتونن مستقیم به یه مکان از حافظه اشاره کنن یا اینکه میتونن به یه خونه از حافظه اشاره کنن که تویه اون خونه به یه خونه دیگه اشاره میکنه (: ) و بعدش هم execut ( اجرا کردن دستورات )
حالا یه نکته ای هس، cpu میتونه دستور x رو فقط مشغول به اجرا کردن باشه یا میتونه هم زمان با انجام دستور x بیاد و دستورات دیگه رو هم اجرا کنه.
مثلا تویه همون ماشین سازی ، اگه یه ماشین ساختش 10 ساعت طول بکشه و ما 10 تا ماشین داشته باشیم ، اگر از pipeline استفاده نکنیم میشه 100 ساعت ولی اگه این کار ها رو موازی با هم انجام بدیم ینی اگه ساخت بدنه خودرو تموم شد و رفت سراغ مثلا تولید رنگ ، یه ماشین دیگه هم شروع به ساختن بشه ینی بدنش تولید بشه و بعدش که رنگ ماشین اول تموم شد ماشین دوم بیاد رنگ بشه و همزمان ماشین سوم بیاد برای تولید بدنه
حالا یه مسئله ای که اینجا هس و اونم تاخیر زمانی بین انجام دستورات هس
مثلا تویه همون ماشین سازی ، طبیعتا ساخت بدنه خیلی بیشتر از رنگ زدن طول میکشه و اینجا یه تاخیر زمانی داریم که باعث میشه یه قسمت از کارخانه بیکار باشه ( ینی یه قسمت از cpu و الکی کلاک هدر بده ، بهش میگن stalls )
باید طراحی طوری باشه که مثلا یه pipe Line داشته باشیم برای رنگ زدن و نصب شیشه ( 5 ساعت ) و یه pipe Line جداگانه برای ساخت بدنه ( 5 ساعت ) که حالا هر چی pipe Line ها افزایش پیدا کنه ، پهنای باند هم کمتر میشه ( در واقع پهنا کمتر نمیشه اگه فرض کنین 64 بیت حافظه داریم و بخوایم به دو تا 32 بیت تبدیل کنیم ، پهنا همونه و فقط عملیات ها برای دسترسی به اون مقدار بیشتر شده )
و یه مشکل دیگه هم ممکنه پیش بیاد به اسم Hazards و یه نمونش اینه که فرض کنین دو تا ماشین تویه تولید رنگ هسن ولی فقط یه دستگاه برای رنگ کردن هست که بهش میگن WAW (Write After Write)
نمونه هاش زیاد هسن مثلا WAR و RAW هم میدونم داریم.
323
تویه این تارگت موقعی که لاگین میکردی یه captcha میخواس ( از نوع کاستوم بود ) که بعد اینکه اونو حل کردی یه otp token میفرستاد و داخل response یه access token میزاشت
تمام route هاشم با اون access token تأیید هویت میشد
( تویه request اون client_id رو میزاشتی یا نمیزاشتی فرقی نداشت 🦦)
323
import os
import base64
# Function to display the captcha image
def display_captcha(image_data):
with open("captcha.jpg", "wb") as f:
f.write(base64.b64decode(image_data.split(',')[1]))
os.system("open captcha.jpg")
if response.status_code != 400 or response.json().get("status") == 2001:
print("Captcha is required.")
captcha_url = "https://URL"
captcha_response = requests.get(captcha_url, headers=headers, verify=False)
print("Captcha generation response:", captcha_response.text)
if captcha_response.status_code == 200:
captcha_data = captcha_response.json()
captcha_image = captcha_data.get("image")
ref_id = captcha_data.get("ref_id")
# Display the captcha image
display_captcha(captcha_image)
# Prompt the user to solve the captcha
captcha_solution = input("Please solve the captcha and enter the result: ")
# Step 2: Send POST request login with captcha
login_data = {
"cellphone": cellphone,
"attestation": {
"method": "numeric",
"platform": "captcha"
},
"extra_methods": [],
"captcha": {
"client_id": client_id,
"solution": captcha_solution,
"ref_id": ref_id,
"type": "numeric"
}
}
login_response = requests.post(url, headers=headers, data=json.dumps(login_data), verify=False)323
دیدم این مبحث تویه node js جذابه 🦦❤️
در Node.js این ، Middleware به توابعی گفته میشود که در مسیر درخواست (request) و پاسخ (response) بین کلاینت و سرور قرار میگیرند و قادرند به درخواستهای HTTP پردازش کنند. این توابع معمولاً در فریمورکهایی مانند Express.js استفاده میشوند. Middlewareها به شما این امکان را میدهند که کدهای عمومی را که بر روی هر درخواست اجرا میشوند، به راحتی مدیریت کنید.ز آنها میتوان برای کارهایی مانند لاگ کردن، مدیریت ارور، اعتبارسنجی، و پردازش دادهها استفاده کرد.
هر Middleware به دو شیء اصلی دسترسی دارد:
req (درخواست) و res (پاسخ). همچنین میتواند از تابع next برای انتقال کنترل به Middleware بعدی استفاده کند. ( تعریف ChatGPT خلاصه )
خب مثالش کجاس ؟
ببین من یه قسمت برای profile کاربر ها دارم و باید طبق یه token بعد از login تایید هویت بشه و بعد وارد profile بشه
میتونه کدش این طوری باشه :
router.get('/profile', async (req, res) => {
const { token } = req.cookies;
const secretKey = 'your_secret_key';
if (token) {
try {
const decoded = jwt.verify(token, secretKey);
if (decoded) {
const user = await userModel.findOne({
where: {
email: decoded.email
}
});
if (user) {
return res.render('profile', { user: { name: user.firstName, email: user.email } });
} else {
return res.redirect('/auth/login');
}
میتونیم هم یه Middleware بنویسیم که اگه جای دیگه نیاز به authentication داشتیم از اون استفاده کنیم :
// code midellware.js
const User = require('../user.model/information.user.model');
const jwt = require('jsonwebtoken');
const requireAuth = (req, res, next) => {
const secretKey = 'your_secret_key';
const token = req.cookies.token;
if (token) {
try {
const decoded = jwt.verify(token, secretKey);
if (decoded) {
res.locals.decoded = decoded;
next();
} else {
res.redirect('/auth/login');
}
} catch (error) {
res.redirect('/auth/login');
}
} else {
res.redirect('/auth/login');
}
};
module.exports = {
requireAuth
};
و میتونیم با res.locals متغییر هایی که در midellware نوشتیم پاس بدیم به جاهایی که میخوایم استفاده کنیم :
router.get('/profile', requireAuth , async (req, res) => {
const user = await userModel.findOne({
where: {
email: res.locals.decoded.email
}
});
if (user) {
return res.render('profile', { user});
} else {
return res.redirect('/auth/login');
}})323
یه مبحثی هست به اسم Inconsistency
که بین checker function ها و library های ارسال کننده درخواست http اتفاق میوفته
و اون اینطوری هس که هم checker function ها امن هستن و هم library ها
ولی وقتی با هم کار میکنن آسیب پذیر میشن
مثلا تویه این URL:
https://admin@site.com username : admin Host : site.comولی تویه این یکی :
https://site.com@admin.ir@moha.tld What is Host?کلا مهم نیس الان هاست چیه مهم اینه که مثلا parse_url تویه php با curl هاست رو یه چیزی بگن ولی این طوری نیست مثلا تویه :
curl -v http://user@127.0.0.1:80@www.google.com/x.php
Host = 127.0.0.1
ولی همین URL رو parse_url میگه google.com !
و اینطوری میشه وقتی curl میزنیم میتونیم میتونیم فایل x.php که تویه یه سرور داخلی هست و اصلا ای پی پابلیک نداره رو بهش دسترسی داشته باشیم.323
Repost from Linuxor ?
خبر داغ : وی اس کد خبر رایگان شدن هوش مصنوعی Copilot رو برای وی اس کد داده
توی کد زدن خیلی خوب کمک میکنه توی این یکسالی که من غیر رایگانش رو استفاده میکردم عالی بود.
نحوه فعال سازی :
https://code.visualstudio.com/blogs/2024/12/18/free-github-copilot
@Linuxor ~ Sezo
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
