• 开源镜像
  • 开源沙龙
  • 媛宝
  • 猿帅
  • 注册
  • 登录
  • 息壤开源生活方式平台
  • 加入我们

开源日报

  • 开源日报第682期:《应用级JS语言 TypeScript》

    9 2 月, 2020

    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《应用级JS语言 TypeScript》
    今日推荐英文原文:《Security Questions Are a Terrible, Horrible, Bad Idea》

    今日推荐开源项目:《应用级JS语言 TypeScript》传送门:GitHub链接
    推荐理由:TypeScript是一种应用级JavaScript语言。TypeScript为JavaScript添加了可选的类型,支持针对任何浏览器、任何主机、任何操作系统的大型JavaScript应用程序的工具。TypeScript编译成可读的、基于标准的JavaScript。
    今日推荐英文原文:《Security Questions Are a Terrible, Horrible, Bad Idea》作者: Meriam Kharbat
    原文链接:https://medium.com/better-programming/security-questions-are-a-terrible-horrible-bad-idea-da108e303240
    推荐理由:还记得你的中学老师么?很可能上一次被问到这个问题是你在某个账户填写密保的时候。但是这种安全问题其实很不靠谱,很糟糕。

    Security Questions Are a Terrible, Horrible, Bad Idea

    Stop asking me for my mother’s maiden name

    (Photo by vardan harutyunyan on Unsplash)

    As I was setting up my account at Deutsche Bahn, I was surprised to see the following UI:

    (Deutsche Bahn account UI)

    After the 2013 Yahoo security breach that compromised 3 billion user accounts, it should be common knowledge by now that security questions are a terrible idea. Why are they still a thing?

    They Can Be Very Easily Guessed


    The main idea behind security questions is they’re safe and memorable. But with today’s social media, anyone can scroll over my posts and figure out the name of my high school mascot, and if I can remember it, then probably a lot of people can too.

    This 2015 Google study has confirmed that with only a single guess, an attacker would have a 19.7% chance of guessing an English-speaking user’s answer to the question “What is your favorite food?”.

    With 10 guesses, an attacker would have a 24% chance of figuring out Arabic-speaking user’s answer to the question: “What was your first teacher’s name?” and a 39% chance of guessing a Korean-speaking user’s city of birth (and a 43% chance of guessing their favorite food).

    Many different users also had identical answers to secret questions you’d typically expect to be unique, such as “What’s your phone number?” or “What’s your frequent flyer number?”.

    Then, 37% of people deliberately provide false answers to their questions, thinking this would make them harder to guess, when, in fact, it made it even easier to figure out.

    They Can Be Brute-Forced


    We demand a user enters a password that contains lowercase and uppercase letters, numbers, and special characters.

    But we hide the account recovery mechanism behind a silly question that can be brute-forced? This doesn’t make any sense to me!

    They Make Wrong Assumptions About Your Users


    Maybe in the Western world, people can find security questions relatable. But I didn’t have a pet, I’m not good at remembering people’s names, and I was never married, so I never went on honeymoon.

    Growing up in North Africa, I didn’t even know what a maiden name meant because where I come from, women don’t take their husband’s names.

    So that left me with what’s your favorite dish, and anyone who knows me can guess what that is.

    That’s a terrible user experience that excludes anyone who isn’t from the same cultural background as the person who developed the application. By doing so, we compromise their privacy because we narrow the questions that they might find relatable.

    Conclusion


    Today, many available services make authentication integration seamless.

    Please implement a proper two-factor authentication flow instead of compromising your users’ privacy.

    And next time someone asks me what my favorite dish is, it’ll be something like cOüs;Coū!68$!


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
    The main idea behind security questions is they’re safe and memorable. But with today’s social media, anyone can scroll over my posts and figure out the name of my high school mascot, and if I can remember it, then probably a lot of people can too.

    This 2015 Google study has confirmed that with only a single guess, an attacker would have a 19.7% chance of guessing an English-speaking user’s answer to the question “What is your favorite food?”.

    With 10 guesses, an attacker would have a 24% chance of figuring out Arabic-speaking user’s answer to the question: “What was your first teacher’s name?” and a 39% chance of guessing a Korean-speaking user’s city of birth (and a 43% chance of guessing their favorite food).

    Many different users also had identical answers to secret questions you’d typically expect to be unique, such as “What’s your phone number?” or “What’s your frequent flyer number?”.

    Then, 37% of people deliberately provide false answers to their questions, thinking this would make them harder to guess, when, in fact, it made it even easier to figure out.

    They Can Be Brute-Forced


    We demand a user enters a password that contains lowercase and uppercase letters, numbers, and special characters.

    But we hide the account recovery mechanism behind a silly question that can be brute-forced? This doesn’t make any sense to me!

    They Make Wrong Assumptions About Your Users


    Maybe in the Western world, people can find security questions relatable. But I didn’t have a pet, I’m not good at remembering people’s names, and I was never married, so I never went on honeymoon.

    Growing up in North Africa, I didn’t even know what a maiden name meant because where I come from, women don’t take their husband’s names.

    So that left me with what’s your favorite dish, and anyone who knows me can guess what that is.

    That’s a terrible user experience that excludes anyone who isn’t from the same cultural background as the person who developed the application. By doing so, we compromise their privacy because we narrow the questions that they might find relatable.

    Conclusion


    Today, many available services make authentication integration seamless.

    Please implement a proper two-factor authentication flow instead of compromising your users’ privacy.

    And next time someone asks me what my favorite dish is, it’ll be something like cOüs;Coū!68$!


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第681期:《蜘蛛足:spiderfoot》

    8 2 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《蜘蛛足:spiderfoot》
    今日推荐英文原文:《How key Python projects are maintained》

    今日推荐开源项目:《蜘蛛足:spiderfoot》传送门:GitHub链接
    推荐理由:Spiderfoot 是一个开源智能(OSINT)自动化工具。 它集成了几乎所有可用的数据源,并使用了一系列数据分析方法,使数据易于导航。Spiderfoot 有一个嵌入式 web 服务器,可以提供一个干净直观的基于 web 的界面,但也可以通过命令行完全使用。 它是用 Python 3和 gpl 许可的语言编写的。
    今日推荐英文原文:《How key Python projects are maintained》作者:Moshe Zadka
    原文链接:https://opensource.com/article/20/2/python-maintained
    推荐理由:python是当今最流行的编程语言之一,大部分编程爱好者都接触过这门语言。python有数量庞大的第三方库,这篇文章将告诉各位python的项目是如何被保存并重复利用的。

    How key Python projects are maintained

    Jannis Leidel is part of the Jazzband community. Jazzband is a collaborative community that shares the responsibility of maintaining Python-based projects.

    Jazzband was born out of the stress of maintaining an open source project alone for a longer time. Jannis is a roadie, which means he does administrative tasks and makes sure the people in the band can play when they want.

    Jazzband is not his first open source volunteer work—he is a former Django core developer, Django Software Foundation board member, has written many Django apps and Python projects, has been a pip and virtualenv core developer and release manager, co-founded the Python Packaging Authority, and been a PyPI admin. On the community front, he co-founded the German Django Association, served as DjangoCon Europe 2010 co-chairperson, has spoken at several conferences, and for the last year has served as a director and co-communication chair of the Python Software Foundation.

    Moshe Zadka: How did you get started with programming?

    Jannis Leidel: I got started with programming as part of the regular German computer science lessons in high school, where I dabbled with Turbo Pascal and Prolog. I quickly got drawn into the world of web development and wrote small websites with PHP3, Perl5, and MySQL. Later at university, I picked up programming again while working on media arts projects and found Ruby, Perl, and Python to be particularly helpful. I eventually stuck with Python for its versatility and ease of use. I’m very happy to have been able to use Python and open web technologies (HTML/JS/CSS) in my career since then.

    Zadka: How did you get started with open source?

    Leidel: As part of an art project at university, I needed a way to talk to various web services and interact with some electronics and found my prior PHP skills not up to the task. So I took a class about programming with Python and got interested in learning more about how frameworks work—compared to libraries—as they further enshrine best practices that I wanted to know about. In particular, the nascent Django Web Framework really appealed to me since it favored a pragmatic approach and provided lots of guidance for how to develop web applications. In 2007 I participated as a student in the Google Summer of Code for Django and later contributed more to Django and its ecosystem of reusable components—after a while as a Django core developer as well. While finishing my degree, I was able to use those skills to work as a freelancer and also spend time on many different parts of the Django community. Moving laterally to the broader Python community was only natural at that point.

    Zadka: What do you for your day job?

    Leidel: I’m a Staff Software Engineer at Mozilla, working on data tools for the Firefox data pipeline. In practice, that means I’m working in the broader Firefox Engineering team on various internal and public-facing web-based projects that help Mozilla employees and community members to make sense of the telemetry data that the Firefox web browser sends. Part of my current focus is maintaining our data analysis and visualization platform, which is based on the open source project Redash, and also contributing back to it. Other projects that I contribute to are our next-gen telemetry system Glean and a tool that allows you to do data science in the browser (including the Scientific Python stack) called Iodide.

    Zadka: How did you get involved with Jazzband?

    Leidel: Back in 2015, I was frustrated with maintaining projects alone that a lot of people depended on and saw many of my community peers struggle with similar issues. I didn’t know a good way to reach more people in the community who may also have an interest in long-term maintenance. On some occasions, I felt that the new “social coding” paradigm was rarely social and often rather isolating and sometimes even traumatic for old and new contributors. I believe the inequality in our community that I find intolerable nowadays was even more rampant at the time, which made providing a safe environment for contributors difficult—something which we now know is essential for stable project maintenance. I wondered if we were missing a more collaborative and inclusive approach to software development.

    The Jazzband project was launched in an attempt to lower the barriers to entry for maintenance and simplify some of the more boring aspects of it (e.g., best practices around CI).

    Zadka: What is your favorite thing about Jazzband?

    Leidel: My favorite thing about Jazzband is the fact that we’ve secured the maintenance of many projects that a lot of people depend on while also making sure that new contributors of any level of experience can join.

    Zadka: What is the job of a “roadie” in Jazzband?

    Leidel: A “roadie” is a go-to person when it comes to all things behind the scenes for Jazzband. That means, for example, dealing with onboarding new projects, maintaining the Jazzband website that handles user management and project releases, acting as a first responder to security or Code of Conduct incidents, and much more. The term “roadies” is borrowed from the music and event industry for support personnel that takes care of almost everything that needs to be done while traveling on tour, except for the actual artistic performance. In Jazzband, they are there to make sure the members can work on the projects. That also means that some tasks are partially or fully automated, where it makes sense, and that best practices are applied to the majority of the Jazzband projects like packaging setup, documentation hosting or continuous integration.

    Zadka: What is the most challenging aspect of your job as a roadie for Jazzband?

    Leidel: At the moment, the most challenging aspect of my job as a roadie is to implement improvements for Jazzband that community members have proposed without risking the workflow that they have come to rely on. In other words, scaling the project on a conceptual level has become more difficult the bigger Jazzband gets. There is a certain irony in the fact that I’m the only roadie at the moment and handle some of the tasks alone while Jazzband tries to prevent that from happening for its projects. This is a big concern for the future of Jazzband.

    Zadka: What would you say to someone who is wondering whether they should join Jazzband?

    Leidel: If you’re interested in joining a group of people who believe that working collaboratively is better than working alone, or if you have struggled with maintenance burden on your own and don’t know how to proceed, consider joining Jazzband. It simplifies onboarding new contributors, provides a framework for disputes, and automates releases to PyPI. There are many best practices that work well for reducing the risk of projects becoming unmaintained.

    Zadka: Is there anything else you want to tell our readers?

    Leidel: I encourage everyone working on open source projects to consider the people on the other side of the screen. Be empathetic and remember that your own experience may not be the experience of your peers. Understand that you are members of a global and diverse community, which requires us always to take leaps of respect for the differences between us.


    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第680期:《假期 date-holidays》

    7 2 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《假期 date-holidays》
    今日推荐英文原文:《How to Come Up With Programming Project Ideas》

    今日推荐开源项目:《假期 date-holidays》传送门:GitHub链接
    推荐理由:虽然现在提起来听者伤心见者落泪,但是有些地方已经要回去上班了。假期本就乃身外之物,不可强求,如果你对假期依旧日思夜想的话——这个项目就能完美解决你的问题,它将各国接下来的假期做成了时间表,这样你就能了解下个假期什么时候到来,完美的望梅止渴的手段。
    今日推荐英文原文:《How to Come Up With Programming Project Ideas》作者:Jun Wu
    原文链接:https://medium.com/better-programming/how-to-come-up-with-programming-project-ideas-50f7281b294d
    推荐理由:先找一个好的点子来才能开始建造新项目

    How to Come Up With Programming Project Ideas

    Hack, tinker, and learn from side projects

    One of the best ways to sharpen your programming skills is to work on side projects. Successful new programmers often have more than a few personal projects on their resume. Programmers who progress in their careers have a higher chance of working on interesting projects. In addition to the increase in pay, these programmers level up their skills by working on personal projects.

    I interviewed five successful startup CEOs in January, and almost all of them had one thing in common. They were tinkering on the side with their own side projects. Eventually, one of their side projects became a business. This is how they began their startup journey.

    Not all of us will be CEOs or startup founders. But tinkering on the side allows you to move beyond your day job and see the much bigger picture. Learning new technical skills is a given. Showing people your side project is also a great networking tool. Within your existing network, if you show people that you have passions, others will resonate with your ideas.

    Who knows? You may just one day land your co-founder in the process.

    You Learn New Skills

    I’ve always tinkered on the side in every career I had. Many of my passions were pursued half-heartedly, but they were stepping stones to other passions. Through the years, I realized that the process of tinkering can teach you many lessons.
    • Programming Languages — Tinkering allows you to learn in depth about the programming language that you’re using at work. For instance, if you are a back-end programmer on large enterprise applications, why not work on a web development project in your spare time? Learning about web infrastructure, load balancing, handling threads, etc., will allow you to apply that knowledge when you need to tune your back-end processes.
    • New Programming Languages — One of the best parts about tinkering on the side is learning a new programming language. If you are a Python programmer, why not learn Julia or Haskell? Languages are built for specific purposes. Learning a new one will allow you to see why Python does things in a certain way. It allows you to compare the features of programming languages and understand the design of specific programming languages. In turn, you will learn to program Python better because you know why things are done a certain way.
    • New Frameworks — Similarly, learning a new programming language often coincides with learning a new framework. It will open up your mind.
    • Usage — When you are tinkering to solve your problems, you will often think more like a user. This way, you can see how to develop applications from the user’s point of view.
    • Failure, Patience, Perfectionism — Without deadlines, you can engage in the practice of sharpening your character. Many programmers don’t realize this, but the programmer with a strong character often is the one that succeeds. As a beginner, learning to deal with failure, having patience with yourself, and learning to deliver regardless of perfection are just some of the skills you’ll pick up by tinkering on the side. There’s nothing like having one of your friends tell you that your three-month project sucks. But that project still allowed you to learn new skills. Who knows? If you keep at it, an investor might end up loving it.

    Elements of Good Project Ideas

    I have project ideas all the time. But the good project ideas are the ones that I end up pursuing for months on end. This is the framework I go by when picking good project ideas. The way I see it, every good project idea has the chance of turning into something more.

    The starting point of the project is as important as the journey itself. You want to orient your journey by the correct compass. For me, my compass is always applications in the real world. I don’t program just for myself. I program to use my skills to solve some problems.

    Fun — First and foremost, are you having fun? Going through life clocking in from 9 to 5 can get repetitive at any job. Are you having fun in your weekend projects? I don’t sit in front of my computer if I’m not having fun on my weekends. You shouldn’t either.

    Solve a problem — What is the one thing that you want to improve in your life? How can you develop a product to solve that?

    Provide value — Providing value with your product is one thing. But is the project providing you with value? Are you learning new skills? Are you gaining new information?

    Starting from scratch — Often, programmers like to start from scratch. Can you google and see if anyone in the community has developed a project similar to yours? Not starting from scratch means time saved.

    Build to keep — Many programmers don’t think of side projects as anything that they want to keep. But good side projects can be turned into startups. You want to build and design it so that you can keep it. Side projects can generate side revenues. You’re investing in side projects.

    Start simple — Every project I’ve ever started was so simple in the beginning. You want to concentrate on just one idea and one functionality. Think microservices. Take the workflow you want apart. Just automate one piece of the puzzle.

    Synergy — You’re a programmer. But who are you as a person? When you have synergy between who you are and what you do, now that’s the recipe for a good life. Create projects that you’re passionate about because they align with who you are as a person. You can also create synergy between work projects and side projects. Once I wrote some functionality to solve one of my problems. Later on, I used the code to apply to a work project as well.

    Places to Find Ideas

    It’s always good to see if other people are working on the idea that you’re about to build. The best place to look for project ideas remains social media channels and blogging platforms such as Reddit, Medium, Twitter, and more. I get inspired by seeing other programmers develop their passion projects. It’s good to search on Google. You can also search in other places:
    • TEDTalks
    • Kickstarter
    • Medium
    • Kaggle
    • Idea Machine
    If you have too many ideas, just pick three and prioritize them on your calendar. Even if none of the three turns into a startup, the skills you learn will allow you to shine on your next job interview.

    Good luck!
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
  • 开源日报第679期:《30-seconds-of-code》

    6 2 月, 2020
    开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
    今日推荐开源项目:《30-seconds-of-code》
    今日推荐英文原文:《Google promises next week’s cookie-crumbling Chrome 80 will only cause ‘a very modest amount of breakage’》

    今日推荐开源项目:《30-seconds-of-code》传送门:GitHub链接
    推荐理由:满足您所有开发需求的简短JavaScript代码段。您可以按名称,标签,语言或使用代码段的描述进行搜索。它将极大提高您的开发效率。
    今日推荐英文原文:《Google promises next week’s cookie-crumbling Chrome 80 will only cause ‘a very modest amount of breakage’》作者:Thomas Claburn
    原文链接:theregister.co.uk/2020/01/30/google_chrome_80_cookies/
    推荐理由:谷歌chrome是当今最流行的浏览器之一,最近的cookie-crumbling事件造成了一定的影响,让我们了解一下谷歌官方对此的回应。

    Google promises next week’s cookie-crumbling Chrome 80 will only cause ‘a very modest amount of breakage’

    Smart websites should be fine – if you’re being scummy, beware

    Updated Next week Google is scheduled to release Chrome 80 to its stable channel, and says only “a very modest amount of breakage” of websites is expected.

    The reason web publishers might see “breakage” – which can mean anything from the loss of certain user-facing features to backend analytics errors – is that Chrome 80 handles HTTP cookies in a different way than its predecessors. The coming changes, intended to improve online security and privacy, mean that web developers need to explicitly declare in website code how they want cookies to be handled if they want to avoid potential problems.

    HTTP cookies are files containing data keys and associated values and are created on a web user’s local device through website code or server interaction to help with session management and to convey information, which may be necessary or may serve a publisher-oriented purpose like advertising or analytics. They’re widely used (and misused) by third-party marketing firms for tracking user behavior and interests to serve targeted ads.

    Concern about third-party cookies has proven sufficient that privacy-focused browsers like Brave, Firefox, and Safari have moved to block them by default, a situation that has prompted Google to plan on phasing them out within two years, while coming up with alternative web technology that can inform its core business – behavioral ad targeting.

    But before that happens, cookie handling is being addressed because the status quo allows cross-origin information leakage and cross-site request forgery attacks. Google is doing so first in Chrome 80 on February 4, but Microsoft’s Edge, now based on Chromium is expected to follow, and Mozilla’s Firefox plans to do so as well.

    Chrome 80’s cookie code will look for the SameSite attribute in webpage HTML and will handle cookies according to the value assigned or by assuming a default value if none has been provided by a site developer.

    The SameSite attribute supports three primary values: SameSite=None; SameSite=Strict; and SameSite=Lax.

    SameSite=None is what a web developer would set to allow cookies in a third-party context, but in Chrome 80 an additional flag, Secure, will need to be set because SameSite=None cookies without it will reject them.

    SameSite=None is the current default and it’s what a developer would want for a site that has widgets, embedded content, affiliate programs, advertising, or a login that works across multiple sites.

    SameSite=Lax places some restrictions on cookies for cross-origin requests. As the spec explains, it “sends same-site cookies along with cross-site requests if and only if they are top-level navigations which use a ‘safe’ (in the [RFC7231] sense) HTTP method.”

    This setting is intended to be a middle ground that offers some protection against CSRF attacks via unsafe HTTP methods like POST.

    And SameSite=Strict means cookies will only be sent in a first-party context.

    What makes Chrome 80’s arrival such a potential problem is that it changes the browser’s default behavior.

    “Cookies that do not specify a SameSite attribute will be treated as if they specified SameSite=Lax, i.e. they will be restricted to first-party or same-site contexts by default,” the Chromium Project’s FAQ explains.

    That means websites using third-party cookies have to change their cookie setting code to specify SameSite=None; Secure or things may break.

    Companies like Adobe, Microsoft and Salesforce have been warning about that possibility. Earlier this week, Google’s AMP (Accelerated Mobile Pages) project did the same.

    About a week ago, Google engineer Lily Chen posted an update on SameSite code changes across the web and concluded, “Overall, we believe the field trial results indicate a very modest amount of breakage.”

    According to Chen, Chrome maintains a Site Engagement Score (0-100) for every domain with which users interact. Google looked at scores for sites with noncompliant cookies to measure how much they matter to users.

    “Of the requests that would have cookies blocked under SameSite=Lax by default, 79 per cent were to sites that the user had no engagement with (Site Engagement Score of 0.0), only 4 per cent were to sites with which the user had ‘medium’ levels of interaction (Site Engagement Score of 15.0 to 50.0), and fewer than 3 per cent were to sites with ‘high’ or ‘max’ engagement scores (over 50.0).”

    Chen concludes that because the vast majority of affected requests are associated with sites that have little or no user engagement, most of the cookies that will be dropped by Chrome 80’s changes will not be visible to users.

    In an email to The Register, Augustine Fou, a cybersecurity and ad fraud researcher who advises companies about online marketing, said that while the cookie changes in Chrome 80 further concentrate Google’s market power by making it more difficult for third-party ad tech to function, they do represent a real privacy win for consumers.

    “It won’t affect good publishers much – those publishers that didn’t have egregious numbers of 3rd party trackers on their site doing god-knows-what,” Fou said. “But it will negatively impact crappy long tail sites that were breaking or skirting the rules as much as possible before.”

    “It won’t affect marketers much either, because using hundreds of targeting parameters before drove no incremental business outcomes for them anyway. Hyper-targeting is the myth that ad tech companies want marketers to believe so they can sell more targeting parameters and charge higher CPMs.” ®

    Updated to add

    Though Chrome 80 is still slated to ship on February 4, 2020, Google now says, “The SameSite-by-default and SameSite=None-requires-Secure behaviors will begin rolling out to Chrome 80 Stable for an initial limited population starting the week of February 17, 2020.”
    下载开源日报APP:https://opensourcedaily.org/2579/
    加入我们:https://opensourcedaily.org/about/join/
    关注我们:https://opensourcedaily.org/about/love/
←上一页
1 … 88 89 90 91 92 … 262
下一页→

Proudly powered by WordPress