Skip to content

Commit 61b5bc3

Browse files
committed
Hide raw/endraw tags for a regular markdown
1 parent 1e5131b commit 61b5bc3

21 files changed

+42
-43
lines changed

ja/04.3.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
{% raw %}
21
# 4.3 クロスサイトスクリプティングの予防
32

43
現在のホームページは大量の動的なコンテンツを含みユーザのエクスペリエンスを高めています。以前に比べてとても複雑になっています。いわゆる動的なコンテンツとはユーザの環境と要求に応じてWebアプリケーションが目的の内容を出力できることを指します。動的なホームページは"クロスサイトスクリプティング"(Cross Site Scripting、セキュリティ専門家が一般的にXSSと省略するもの)と呼ばれる攻撃を受けることがあります。
@@ -27,7 +26,7 @@ Goではどのようにこの効果的な防御を行なっているのでしょ
2726
図4.3 Javascriptフィルターによる出力
2827

2928
Goのhtml/templateパッケージはデフォルトでhtmlタグをフィルターします。しかし時にはこの`<script>alert()</script>`を正常な情報として出力したい場合があるかもしれません。そのような場合はどのように処理するべきでしょうか?この場合はtext/templateをご利用ください。下の例をご覧ください:
30-
29+
<!-- {% raw %} -->
3130
import "text/template"
3231
...
3332
t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
@@ -67,4 +66,4 @@ Goのhtml/templateパッケージはデフォルトでhtmlタグをフィルタ
6766
* [目次](<preface.md>)
6867
* 前へ: [入力値の検証](<04.2.md>)
6968
* 次へ: [フォームの複数回送信の防止](<04.4.md>)
70-
{% endraw %}
69+
<!-- {% endraw %} -->

ja/04.5.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 4.5 ファイルのアップロード処理
33

44
ユーザによるファイルのアップロードを処理したいとします。例えば、現在Instagramのようなホームページを作成しているとします。ユーザが撮影した写真を保存する必要があります。このような要求はどのように実現するのでしょうか?
@@ -156,4 +156,4 @@
156156
* [目次](<preface.md>)
157157
* 前へ: [フォームの多重送信の防止](<04.4.md>)
158158
* 次へ: [まとめ](<04.6.md>)
159-
{% endraw %}
159+
<!-- {% endraw %} -->

ja/06.4.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 6.4 sessionハイジャックの予防
33
sessionハイジャックは広範囲に存在する比較的重大な脆弱性です。session技術において、クライアントサイドとサーバサイドはsessionのIDによってセッションを維持します。しかしこのIDは簡単にスニッフィングされ、第三者に利用されてしまいます。これは中間者攻撃の一種です。
44

@@ -88,4 +88,4 @@ sessionが始まると、生成されたsessionIDの時間を記録する一つ
8888
* [目次](<preface.md>)
8989
* 前へ: [sessionストレージ](<06.3.md>)
9090
* 次へ: [まとめ](<06.5.md>)
91-
{% endraw %}
91+
<!-- {% endraw %} -->

ja/07.1.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 7.1 XMLの処理
33
XMLはデータと情報のやりとりするための形式として十分普及しています。Webサービスが日々広範囲で応用されてくるにつれ、現在XMLは日常的な開発作業において重要な役割を演じてきました。この節ではGo言語の標準パッケージにあるXML関連のパッケージをご紹介します。
44

@@ -220,4 +220,4 @@ XMLをstructに解析する際は以下のルールに従います: 
220220
* [目次](<preface.md>)
221221
* 前へ: [テキスト処理](<07.0.md>)
222222
* 次へ: [Jsonの処理](<07.2.md>)
223-
{% endraw %}
223+
<!-- {% endraw %} -->

ja/07.4.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 7.4 テンプレートの処理
33
## テンプレートとは何か
44
おそらくあなたはMVCのデザインパターンについて聞いたことがあると思います。Modelはデータを処理を、Viewは表示結果を、Controllerはユーザのリクエストの制御を行います。Viewレイヤーの処理では、多くの動的な言語ではどれも静的なHTMLの中に動的言語が生成したデータを挿入します。例えばJSPでは`<%=....=%>`を挿入することで、PHPでは`<?php.....?>`を挿入することで実現します。
@@ -349,4 +349,4 @@ Webアプリケーションを作る時はテンプレートの一部が固定
349349
* [目次](<preface.md>)
350350
* 前へ: [正規表現の処理](<07.3.md>)
351351
* 次へ: [ファイルの操作](<07.5.md>)
352-
{% endraw %}
352+
<!-- {% endraw %} -->

ja/09.1.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 9.1 CSRF攻撃の予防
33

44
## CSRFとは何か 
@@ -92,4 +92,4 @@ tokenを検証
9292
* [目次](<preface.md>)
9393
* 前へ: [セキュリティと暗号化](<09.0.md>)
9494
* 次へ: [入力フィルタリングの確保](<09.2.md>)
95-
{% endraw %}
95+
<!-- {% endraw %} -->

ja/10.2.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 10.2 ローカライズリソース
33
前の節ではどのようにしてLocaleを設定するかご紹介しました。Localeを設定したあとはどのようにしてLocaleに対応する情報を保存するかという問題を解決する必要があります。ここでの情報とは以下の内容を含みます:テキスト情報、時間と日時、通貨の値、画像、ファイルや動画といったリソース等です。ここではこれらの情報に対してご紹介していきたいと思います。Go言語ではこれらのフォーマットの情報をJSONに保存します。その後それぞれ適した方法によって表示します。(以下では日本語と英語の2つの言語を対比して例を挙げます。保存の形式はそれぞれen.jsonとja-JP.jsonです。)
44
## ローカライズテキスト情報
@@ -133,4 +133,4 @@ Localeの違いによってビューを表示させる場合もあるかもし
133133
* [目次](<preface.md>)
134134
* 前へ: [デフォルトロケールの設定](<10.1.md>)
135135
* 次へ: [国際化サイト](<10.3.md>)
136-
{% endraw %}
136+
<!-- {% endraw %} -->

ja/10.3.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 10.3 国際化サイト
33
前の節でどのようにしてローカライズリソースを処理するかご紹介しました。Localeに対応した設定ファイルです。ではもし複数のローカライズリソースを処理する場合は?いくつかの我々が通常使用する例は:簡単なテキスト翻訳、時間や日時、数字といったものはどのように処理するのでしょうか?この節では一つ一つこれらの問題を解決していきます。
44
## 複数のロケールパッケージの管理
@@ -179,4 +179,4 @@
179179
* [目次](<preface.md>)
180180
* 前へ: [ローカライズリソース](<10.2.md>)
181181
* 次へ: [まとめ](<10.4.md>)
182-
{% endraw %}
182+
<!-- {% endraw %} -->

ja/12.2.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 12.2 サイトエラー処理
33
我々のWebアプリケーションが一旦実運用されると、さまざまなエラーが発生する可能性があります。Webアプリケーションの日常の実行ではいくつものエラーが発生する可能性があります。具体的には以下のとおり:
44

@@ -123,4 +123,4 @@
123123
* [目次](<preface.md>)
124124
* 前へ: [アプリケーションログ](<12.1.md>)
125125
* 次へ: [アプリケーションのデプロイ](<12.3.md>)
126-
{% endraw %}
126+
<!-- {% endraw %} -->

ja/13.3.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 13.3 controller設計
33

44
伝統的なMVCフレームワークにおいて、多くの場合Action設計のサフィックス反映にもとづいています、しかしながら、現在webではREST風のフレームワークが流行しています。なるべくFilterかrewriteを使用してURLのリライトを行い、REST風のURLを実現しています。しかしなぜ直接新しくREST風のMVCフレームワークを設計しないのでしょうか?本章ではこういった考え方に基いてどのようにREST風のMVCフレームワークにフルスクラッチでcontroller、最大限に簡素化されたWebアプリケーションの開発、ひいては一行で可能な"Hello, world"の実装についてご説明します。
@@ -162,4 +162,4 @@ index.tplのコードは以下のようになります。データの設定と
162162
* [目次](<preface.md>)
163163
* 前へ: [カスタム定義のルータの設計](<13.2.md>)
164164
* 次へ: [ログとコンフィグ設計](<13.4.md>)
165-
{% endraw %}
165+
<!-- {% endraw %} -->

ja/13.5.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 13.5 ブログの追加/削除/修正の実装
33

44
前ではbeegoフレームワークの全体的な構造思想の実装とニセコードの一部の実装についてご紹介しました。この節ではbeegoを通してブログシステムを設計しましょう。これにはブログの閲覧、追加、修正、削除といった操作が含まれます。
@@ -257,4 +257,4 @@ edit.tpl
257257
* [目次](<preface.md>)
258258
* 前へ: [ログとコンフィグ設計](<13.4.md>)
259259
* 次へ: [まとめ](<13.6.md>)
260-
{% endraw %}
260+
<!-- {% endraw %} -->

ja/14.3.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 14.3 フォームおよび検証のサポート
33
Web開発ではこのようなプロセスをよく見かけます:
44

@@ -280,4 +280,4 @@ structを定義したらcontrollerにおいてこのように操作します
280280
* [目次](<preface.md>)
281281
* 前へ: [Sessionのサポート](<14.2.md>)
282282
* 次へ: [ユーザの認証](<14.4.md>)
283-
{% endraw %}
283+
<!-- {% endraw %} -->

ja/14.5.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 14.5 多言語サポート
33
第10章において国際化とローカライゼーションおよびgo-i18nライブラリの開発についてご紹介しました。この節ではこのライブラリをbeegoフレームワークの中にもってくることで、我々のフレームワークにおいて国際化とローカライゼーションをサポートさせます。
44

@@ -112,4 +112,4 @@ beegoにおいて以下のようにグローバル変数を設定します:
112112
* [目次](<preface.md>)
113113
* 前へ: [ユーザ認証](<14.4.md>)
114114
* 次へ: [pprofのサポート](<14.6.md>)
115-
{% endraw %}
115+
<!-- {% endraw %} -->

zh/09.1.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
{% raw %}
21
# 9.1 预防CSRF攻击
32

43
## 什么是CSRF
4+
55
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
66

77
那么CSRF到底能够干嘛呢?你可以这样简单的理解:攻击者可以盗用你的登陆信息,以你的身份模拟发送各种请求。攻击者只要借助少许的社会工程学的诡计,例如通过QQ等聊天软件发送的链接(有些还伪装成短域名,用户无法分辨),攻击者就能迫使Web应用的用户去执行攻击者预设的操作。例如,当用户登录网络银行去查看其存款余额,在他没有退出时,就点击了一个QQ好友发来的链接,那么该用户银行帐户中的资金就有可能被转移到攻击者指定的帐户中。
88

99
所以遇到CSRF攻击时,将对终端用户的数据和操作指令构成严重的威胁;当受攻击的终端用户具有管理员帐户的时候,CSRF攻击将危及整个Web应用程序。
1010

1111
## CSRF的原理
12+
1213
下图简单阐述了CSRF攻击的思想
1314

1415
![](images/9.1.csrf.png?raw=true)
@@ -92,4 +93,3 @@ CSRF的防御可以从服务端和客户端两方面着手,防御效果是从
9293
* [目录](<preface.md>)
9394
* 上一节: [安全与加密](<09.0.md>)
9495
* 下一节: [确保输入过滤](<09.2.md>)
95-
{% endraw %}

zh/10.2.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 10.2 本地化资源
33
前面小节我们介绍了如何设置Locale,设置好Locale之后我们需要解决的问题就是如何存储相应的Locale对应的信息呢?这里面的信息包括:文本信息、时间和日期、货币值、图片、包含文件以及视图等资源。那么接下来我们将对这些信息一一进行介绍,Go语言中我们把这些格式信息存储在JSON中,然后通过合适的方式展现出来。(接下来以中文和英文两种语言对比举例,存储格式文件en.json和zh-CN.json)
44
## 本地化文本消息
@@ -133,4 +133,4 @@ $GOROOT/lib/time包中的timeinfo.zip含有locale对应的时区的定义,为
133133
* [目录](<preface.md>)
134134
* 上一节: [设置默认地区](<10.1.md>)
135135
* 下一节: [国际化站点](<10.3.md>)
136-
{% endraw %}
136+
<!-- {% endraw %} -->

zh/10.3.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 10.3 国际化站点
33
前面小节介绍了如何处理本地化资源,即Locale一个相应的配置文件,那么如果处理多个的本地化资源呢?而对于一些我们经常用到的例如:简单的文本翻译、时间日期、数字等如果处理呢?本小节将一一解决这些问题。
44
## 管理多个本地包
@@ -179,4 +179,4 @@
179179
* [目录](<preface.md>)
180180
* 上一节: [本地化资源](<10.2.md>)
181181
* 下一节: [小结](<10.4.md>)
182-
{% endraw %}
182+
<!-- {% endraw %} -->

zh/12.2.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 12.2 网站错误处理
33
我们的Web应用一旦上线之后,那么各种错误出现的概率都有,Web应用日常运行中可能出现多种错误,具体如下所示:
44

@@ -123,4 +123,4 @@
123123
* [目录](<preface.md>)
124124
* 上一章: [应用日志](<12.1.md>)
125125
* 下一节: [应用部署](<12.3.md>)
126-
{% endraw %}
126+
<!-- {% endraw %} -->

zh/13.3.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 13.3 controller设计
33

44
传统的MVC框架大多数是基于Action设计的后缀式映射,然而,现在Web流行REST风格的架构。尽管使用Filter或者rewrite能够通过URL重写实现REST风格的URL,但是为什么不直接设计一个全新的REST风格的 MVC框架呢?本小节就是基于这种思路来讲述如何从头设计一个基于REST风格的MVC框架中的controller,最大限度地简化Web应用的开发,甚至编写一行代码就可以实现“Hello, world”。
@@ -162,4 +162,4 @@ index.tpl的代码如下所示,我们可以看到数据的设置和显示都
162162
* [目录](<preface.md>)
163163
* 上一章: [自定义路由器设计](<13.2.md>)
164164
* 下一节: [日志和配置设计](<13.4.md>)
165-
{% endraw %}
165+
<!-- {% endraw %} -->

zh/13.5.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 13.5 实现博客的增删改
33

44
前面介绍了beego框架实现的整体构思以及部分实现的伪代码,这小节介绍通过beego建立一个博客系统,包括博客浏览、添加、修改、删除等操作。
@@ -258,4 +258,4 @@ edit.tpl
258258
* [目录](<preface.md>)
259259
* 上一章: [日志和配置设计](<13.4.md>)
260260
* 下一节: [小结](<13.6.md>)
261-
{% endraw %}
261+
<!-- {% endraw %} -->

zh/14.3.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 14.3 表单及验证支持
33
在Web开发中对于这样的一个流程可能很眼熟:
44

@@ -280,4 +280,4 @@
280280
* [目录](<preface.md>)
281281
* 上一节: [Session支持](<14.2.md>)
282282
* 下一节: [用户认证](<14.4.md>)
283-
{% endraw %}
283+
<!-- {% endraw %} -->

zh/14.5.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{% raw %}
1+
<!-- {% raw %} -->
22
# 14.5 多语言支持
33
我们在第十章介绍过国际化和本地化,开发了一个go-i18n库,这小节我们将把该库集成到beego框架里面来,使得我们的框架支持国际化和本地化。
44

@@ -112,4 +112,4 @@ beego中设置全局变量如下:
112112
* [目录](<preface.md>)
113113
* 上一节: [用户认证](<14.4.md>)
114114
* 下一节: [pprof支持](<14.6.md>)
115-
{% endraw %}
115+
<!-- {% endraw %} -->

0 commit comments

Comments
 (0)