TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #721 · 26.12

Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev

Hashtags

Резултати

Намерени 2 подобни публикации

Търсене: #env

当前筛选 #env清除筛选
Dasturlash hayoti️️ ️

@dasturlash_hayoti · Post #3938 · 25.08.2025 г., 06:03

#env#github#dasturlash_hayoti Env fayllar bilan ishlash Dastur yozishda ko‘p hollarda API kalitlari, parollar, tokenlar kabi maxfiy ma’lumotlardan foydalanishga to‘g‘ri keladi. Bu ma’lumotlarni hech qachon kodingiz ichiga to‘g‘ridan-to‘g‘ri yozmang❌. ✅ Buning uchun .env faylidan foydalaniladi. .env fayl — sizning loyihangizdagi maxfiy sozlamalarni saqlash joyi. Masalan: DB_HOST=127.0.0.1 DB_USER=root DB_PASSWORD=secret API_KEY=your_api_key_here 🔹 Dastur bu qiymatlarni .env fayldan o‘qib ishlatadi. 🔹 Kodni GitHub’ga joylashtirganingizda .env faylni hech qachon yuklamang! 👉 Buning uchun .gitignore faylida quyidagi qatordan foydalaning: .env Shunda .env fayl GitHub’ga tushmaydi va maxfiy ma’lumotlaringiz xavfsiz qoladi. 📌 Xulosa: ◾️API kalitlari, login va parollarni .env faylga joylashtiring ◾️.env faylni doim .gitignore ga qo‘shing ◾️GitHub’ga yuklashdan saqlaning 🔐 Shunday qilsangiz, loyihangiz yanada xavfsiz va professional bo‘ladi. Siz odatda .env faylni qayerda ishlatib ko‘rgansiz – Laravel, Django, yoki boshqa frameworkda? Izohlarda yozib qoldiring 👇 💻@dasturlash_hayoti — bir xatoni tuzatib, ikkinchisiga tayyorlanish! 😅

问答环节 q:渗透需要学历吗? a:如果是找工作肯定需要,自学的话和学历没关系,能不能干事的唯一标准就是能力 q:自学遇到了瓶颈,无法提升也无法实战怎么办? a:外围多看实战资料,内网多打靶机跳出被教程引着走的圈子,搞懂原理自己理解,有空自行思考复现几个漏洞比看教程有价值 q:公安执法部门等国家队是不是都非常强? a:错误的,公安涉及技术的只有网警,知识来源于大学警校中网络安全与执法专业,需要花费一部分时间学习司法执法相关知识,并且会侧重取证,监控等非渗透知识。第二是公安属于体制内公务员,各类人事应酬非常多,技术上是难以保持一线的,一般重大事故或行动都会外包给安全公司。但外包有外包的好,公安部门作为网络安全主管部门能调动的资源非常多,你们熟知都什么奇安信深信服都是晶哥的打手,所以也千万别去招惹警察叔叔 q:外群是拿来做什么的,投了简历也没见有行动? a:后续会开展实战行动以及针对组员的拔高培训,录课中勿催 q:在渗透中感觉最难的是什么? a:各种报错,没有之一 q:表姐有男朋友吗?平时穿黑丝吗?喜欢什么样的男生? a:有。正式场合会穿黑丝,但是因为我比较暴力经常穿成一次性用品所以频率不高。喜欢像孙笑川那样儒雅随和又很文明的人 q:CVE-2023-27372中SPIP公域表单值序列化处理不当 利用php代码中的ENV**可以在密码重置模块实现注入,怎么利用实现rce? a:控件中把protege_champ()这个函数作为正则表达式, 函数的代码: <!-- File : /squelettes-dist/formulaires/oubli.html --> <input[ (#HTML5|?{type="email" class="text email" autofocus="autofocus" required="required",type="text" class="text"})] name='oubli' id='oubli' value="#ENV**{oubli}" autocapitalize="off" autocorrect="off" /> 这个函数对HTML表单字符动态处理,从请求中获取名为"oubli"的GET或POST参数,和SPIP模板构造冲突了,所以输入字段是不对序列化字符进行处理的。把序列化PHP字符串注入变量$_POST['oubli']到/spip.PHP端点上重置密码,从而page=spip_pass,在服务器上有导致RCE。 q:孙尚香出装出什么? a:疾步鞋黑切无尽宗师电刀,最后泣血复活甲二选一 q:学渗透没有天赋怎么办? a1(saber):转行 a2(落老师):天赋是一方面,经验也很重要,不是绝对的 a3(某倭瓜):有兴趣就好,可以先尝试,试一试总比直接放弃好 a4:(老黄):我特么双非一本呢还不是学得挺好,别学什么小迪暗月坑人 a5(🐗老师):天赋决定的是上限,安全直到红队高级为止不怎么看天赋 a6(🚗🧊):有这时间学网安费力不讨好的,自己哪个有天赋学哪个吧 q:自学web可以找工作吗? a:基本同一,看能力,不过web神仙太多了,选什么二进制嵌入式就业会更方便

Hashtags